Skip to content

Commit 4b4dcf9

Browse files
authored
Merge pull request #959 from synthetichealth/hiv
HIV Module
2 parents 4be5dd4 + 451400a commit 4b4dcf9

25 files changed

Lines changed: 11396 additions & 2 deletions

src/main/java/org/mitre/synthea/engine/State.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2215,4 +2215,28 @@ public boolean process(Person person, long time) {
22152215
}
22162216
}
22172217
}
2218-
}
2218+
2219+
/**
2220+
* The Vaccine state type indicates a point in the module where the patient is vaccinated.
2221+
*/
2222+
public static class Vaccine extends State {
2223+
private int series;
2224+
private List<Code> codes;
2225+
2226+
@Override
2227+
public Vaccine clone() {
2228+
Vaccine clone = (Vaccine) super.clone();
2229+
return clone;
2230+
}
2231+
2232+
@Override
2233+
public boolean process(Person person, long time) {
2234+
HealthRecord.Immunization entry = person.record.immunization(time, codes.get(0).display);
2235+
for (Code code : codes) {
2236+
entry.codes.add(code);
2237+
}
2238+
entry.series = this.series;
2239+
return true;
2240+
}
2241+
}
2242+
}
Lines changed: 289 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,289 @@
1+
{
2+
"name": "ART Sequence",
3+
"states": {
4+
"Initial": {
5+
"type": "Initial",
6+
"conditional_transition": [
7+
{
8+
"transition": "Terminal",
9+
"condition": {
10+
"condition_type": "Attribute",
11+
"attribute": "pregnant",
12+
"operator": "==",
13+
"value": true
14+
}
15+
},
16+
{
17+
"transition": "Year Check"
18+
}
19+
]
20+
},
21+
"Terminal": {
22+
"type": "Terminal"
23+
},
24+
"1987 to 1994": {
25+
"type": "CallSubmodule",
26+
"submodule": "hiv/art_sequence_1987_1994",
27+
"direct_transition": "Set 1987"
28+
},
29+
"1995_to_1996": {
30+
"type": "CallSubmodule",
31+
"submodule": "hiv/art_sequence_1995_1996",
32+
"direct_transition": "Set 1995"
33+
},
34+
"1997_to_2002": {
35+
"type": "CallSubmodule",
36+
"submodule": "hiv/art_sequence_1997_2002",
37+
"direct_transition": "Set 1997"
38+
},
39+
"2003_to_2005": {
40+
"type": "CallSubmodule",
41+
"submodule": "hiv/art_sequence_2003_2005",
42+
"direct_transition": "Set 2003"
43+
},
44+
"2006_to_2014": {
45+
"type": "CallSubmodule",
46+
"submodule": "hiv/art_sequence_2006_2014",
47+
"direct_transition": "Set 2006"
48+
},
49+
"2015+": {
50+
"type": "CallSubmodule",
51+
"submodule": "hiv/art_sequence_2015",
52+
"direct_transition": "Set 2015"
53+
},
54+
"Year Check": {
55+
"type": "Simple",
56+
"conditional_transition": [
57+
{
58+
"transition": "Check 2015",
59+
"condition": {
60+
"condition_type": "Date",
61+
"operator": ">=",
62+
"year": 2015,
63+
"value": 0
64+
}
65+
},
66+
{
67+
"transition": "Check 2006",
68+
"condition": {
69+
"condition_type": "Date",
70+
"operator": ">=",
71+
"year": 2006,
72+
"value": 0
73+
}
74+
},
75+
{
76+
"transition": "Check 2003",
77+
"condition": {
78+
"condition_type": "Date",
79+
"operator": ">=",
80+
"year": 2003,
81+
"value": 0
82+
}
83+
},
84+
{
85+
"transition": "Check 1997",
86+
"condition": {
87+
"condition_type": "Date",
88+
"operator": ">=",
89+
"year": 1997,
90+
"value": 0
91+
}
92+
},
93+
{
94+
"transition": "Check 1995",
95+
"condition": {
96+
"condition_type": "Date",
97+
"operator": ">=",
98+
"year": 1995,
99+
"value": 0
100+
}
101+
},
102+
{
103+
"transition": "1987 to 1994",
104+
"condition": {
105+
"condition_type": "Date",
106+
"operator": ">=",
107+
"year": 1987,
108+
"value": 0
109+
}
110+
},
111+
{
112+
"transition": "Set Zero"
113+
}
114+
]
115+
},
116+
"Set 1995": {
117+
"type": "SetAttribute",
118+
"attribute": "art_year",
119+
"direct_transition": "Terminal",
120+
"value": 1995
121+
},
122+
"Stop All 1995": {
123+
"type": "CallSubmodule",
124+
"submodule": "hiv/stop_all_art_meds",
125+
"direct_transition": "1995_to_1996"
126+
},
127+
"Check 1995": {
128+
"type": "Simple",
129+
"conditional_transition": [
130+
{
131+
"transition": "Terminal",
132+
"condition": {
133+
"condition_type": "Attribute",
134+
"attribute": "art_year",
135+
"operator": ">=",
136+
"value": 1995
137+
}
138+
},
139+
{
140+
"transition": "Stop All 1995"
141+
}
142+
]
143+
},
144+
"Check 2015": {
145+
"type": "Simple",
146+
"complex_transition": [
147+
{
148+
"condition": {
149+
"condition_type": "Attribute",
150+
"attribute": "art_year",
151+
"operator": "is nil"
152+
},
153+
"distributions": [],
154+
"transition": "Stop All 2015"
155+
},
156+
{
157+
"condition": {
158+
"condition_type": "Attribute",
159+
"attribute": "art_year",
160+
"operator": ">=",
161+
"value": 2015
162+
},
163+
"distributions": [],
164+
"transition": "Terminal"
165+
},
166+
{
167+
"distributions": [
168+
{
169+
"distribution": 0.5,
170+
"transition": "Stop All 2015"
171+
},
172+
{
173+
"distribution": 0.5,
174+
"transition": "Terminal"
175+
}
176+
]
177+
}
178+
]
179+
},
180+
"Stop All 2015": {
181+
"type": "CallSubmodule",
182+
"submodule": "hiv/stop_all_art_meds",
183+
"direct_transition": "2015+"
184+
},
185+
"Set 2015": {
186+
"type": "SetAttribute",
187+
"attribute": "art_year",
188+
"direct_transition": "Terminal",
189+
"value": 2015
190+
},
191+
"Check 2006": {
192+
"type": "Simple",
193+
"conditional_transition": [
194+
{
195+
"transition": "Terminal",
196+
"condition": {
197+
"condition_type": "Attribute",
198+
"attribute": "art_year",
199+
"operator": ">=",
200+
"value": 2006
201+
}
202+
},
203+
{
204+
"transition": "Stop All 2006"
205+
}
206+
]
207+
},
208+
"Stop All 2006": {
209+
"type": "CallSubmodule",
210+
"submodule": "hiv/stop_all_art_meds",
211+
"direct_transition": "2006_to_2014"
212+
},
213+
"Set 2006": {
214+
"type": "SetAttribute",
215+
"attribute": "art_year",
216+
"direct_transition": "Terminal",
217+
"value": 2006
218+
},
219+
"Check 2003": {
220+
"type": "Simple",
221+
"conditional_transition": [
222+
{
223+
"transition": "Terminal",
224+
"condition": {
225+
"condition_type": "Attribute",
226+
"attribute": "art_year",
227+
"operator": ">=",
228+
"value": 2003
229+
}
230+
},
231+
{
232+
"transition": "Stop All 2003"
233+
}
234+
]
235+
},
236+
"Stop All 2003": {
237+
"type": "CallSubmodule",
238+
"submodule": "hiv/stop_all_art_meds",
239+
"direct_transition": "2003_to_2005"
240+
},
241+
"Set 2003": {
242+
"type": "SetAttribute",
243+
"attribute": "art_year",
244+
"direct_transition": "Terminal",
245+
"value": 2003
246+
},
247+
"Check 1997": {
248+
"type": "Simple",
249+
"conditional_transition": [
250+
{
251+
"transition": "Terminal",
252+
"condition": {
253+
"condition_type": "Attribute",
254+
"attribute": "art_year",
255+
"operator": ">=",
256+
"value": 1997
257+
}
258+
},
259+
{
260+
"transition": "Stop All 1997"
261+
}
262+
]
263+
},
264+
"Stop All 1997": {
265+
"type": "CallSubmodule",
266+
"submodule": "hiv/stop_all_art_meds",
267+
"direct_transition": "1997_to_2002"
268+
},
269+
"Set 1997": {
270+
"type": "SetAttribute",
271+
"attribute": "art_year",
272+
"direct_transition": "Terminal",
273+
"value": 1997
274+
},
275+
"Set 1987": {
276+
"type": "SetAttribute",
277+
"attribute": "art_year",
278+
"direct_transition": "Terminal",
279+
"value": 1987
280+
},
281+
"Set Zero": {
282+
"type": "SetAttribute",
283+
"attribute": "art_year",
284+
"direct_transition": "Terminal",
285+
"value": 0
286+
}
287+
},
288+
"gmf_version": 2
289+
}

0 commit comments

Comments
 (0)