001package org.hl7.fhir.convertors.misc;
002
003import java.io.FileOutputStream;
004import java.io.IOException;
005
006import org.hl7.fhir.utilities.json.model.JsonObject;
007import org.hl7.fhir.utilities.json.parser.JsonParser;
008
009
010public class JsonProcessor {
011  public static void main(String[] args) throws Exception {
012    new JsonProcessor().process(args[0]);
013  }
014
015  private void process(String source) throws IOException {
016    JsonObject json = JsonParser.parseObjectFromFile(source);
017    process(json);
018    JsonParser.compose(json, new FileOutputStream(source), true);
019    
020  }
021
022  private void process(JsonObject json) {
023    process(json, "ActivityDefinition.status");
024    process(json, "CapabilityStatement.status");
025    process(json, "CodeSystem.status");
026    process(json, "CompartmentDefinition.status");
027    process(json, "ConceptMap.status");
028    process(json, "DataElement.status");
029    process(json, "ExpansionProfile.status");
030    process(json, "GraphDefinition.status");
031    process(json, "ImplementationGuide.status");
032    process(json, "Library.status");
033    process(json, "Measure.status");
034    process(json, "MessageDefinition.status");
035    process(json, "OperationDefinition.status");
036    process(json, "PlanDefinition.status");
037    process(json, "Questionnaire.status");
038    process(json, "SearchParameter.status");
039    process(json, "ServiceDefinition.status");
040    process(json, "StructureDefinition.status");
041    process(json, "StructureMap.status");
042    process(json, "TestScript.status");
043    process(json, "ValueSet.status");
044    process(json, "ActivityDefinition.experimental");
045    process(json, "CapabilityStatement.experimental");
046    process(json, "CodeSystem.experimental");
047    process(json, "CompartmentDefinition.experimental");
048    process(json, "ConceptMap.experimental");
049    process(json, "DataElement.experimental");
050    process(json, "ExpansionProfile.experimental");
051    process(json, "GraphDefinition.experimental");
052    process(json, "ImplementationGuide.experimental");
053    process(json, "Library.experimental");
054    process(json, "Measure.experimental");
055    process(json, "MessageDefinition.experimental");
056    process(json, "OperationDefinition.experimental");
057    process(json, "PlanDefinition.experimental");
058    process(json, "Questionnaire.experimental");
059    process(json, "SearchParameter.experimental");
060    process(json, "ServiceDefinition.experimental");
061    process(json, "StructureDefinition.experimental");
062    process(json, "StructureMap.experimental");
063    process(json, "TestScript.experimental");
064    process(json, "ValueSet.experimental");
065    process(json, "Identifier.use");
066    process(json, "Quantity.comparator");
067    process(json, "Address.use");
068    process(json, "ContactPoint.use");
069    process(json, "HumanName.use");
070    process(json, "BackboneElement.modifierExtension");
071    process(json, "DomainResource.modifierExtension");
072    process(json, "Resource.implicitRules");
073    process(json, "Account.status");
074    process(json, "AllergyIntolerance.clinicalStatus");
075    process(json, "AllergyIntolerance.verificationStatus");
076    process(json, "Appointment.status");
077    process(json, "AppointmentResponse.participantStatus");
078    process(json, "Basic.code");
079    process(json, "BodySite.active");
080    process(json, "CarePlan.status");
081    process(json, "CarePlan.intent");
082    process(json, "CarePlan.activity.detail.status");
083    process(json, "CarePlan.activity.detail.prohibited");
084    process(json, "CareTeam.status");
085    process(json, "ChargeItem.status");
086    process(json, "Claim.status");
087    process(json, "ClaimResponse.status");
088    process(json, "ClinicalImpression.status");
089    process(json, "Communication.status");
090    process(json, "Communication.notDone");
091    process(json, "CommunicationRequest.status");
092    process(json, "Composition.status");
093    process(json, "Composition.confidentiality");
094    process(json, "Composition.section.mode");
095    process(json, "ConceptMap.group.element.target.equivalence");
096    process(json, "Condition.clinicalStatus");
097    process(json, "Condition.verificationStatus");
098    process(json, "Consent.status");
099    process(json, "Contract.status");
100    process(json, "Coverage.status");
101    process(json, "DetectedIssue.status");
102    process(json, "Device.status");
103    process(json, "DeviceRequest.status");
104    process(json, "DeviceRequest.intent");
105    process(json, "DeviceUseStatement.status");
106    process(json, "DiagnosticReport.status");
107    process(json, "DocumentManifest.status");
108    process(json, "DocumentReference.status");
109    process(json, "DocumentReference.relatesTo");
110    process(json, "EligibilityRequest.status");
111    process(json, "EligibilityResponse.status");
112    process(json, "Encounter.status");
113    process(json, "Endpoint.status");
114    process(json, "EnrollmentRequest.status");
115    process(json, "EnrollmentResponse.status");
116    process(json, "EpisodeOfCare.status");
117    process(json, "ExplanationOfBenefit.status");
118    process(json, "FamilyMemberHistory.status");
119    process(json, "FamilyMemberHistory.notDone");
120    process(json, "FamilyMemberHistory.estimatedAge");
121    process(json, "Flag.status");
122    process(json, "Goal.status");
123    process(json, "Group.characteristic.exclude");
124    process(json, "GuidanceResponse.status");
125    process(json, "HealthcareService.active");
126    process(json, "Immunization.status");
127    process(json, "Immunization.notGiven");
128    process(json, "List.status");
129    process(json, "List.mode");
130    process(json, "List.entry.deleted");
131    process(json, "Location.status");
132    process(json, "Location.mode");
133    process(json, "MeasureReport.status");
134    process(json, "MedicationAdministration.status");
135    process(json, "MedicationAdministration.notGiven");
136    process(json, "MedicationDispense.status");
137    process(json, "MedicationRequest.status");
138    process(json, "MedicationRequest.intent");
139    process(json, "MedicationRequest.substitution.allowed");
140    process(json, "MedicationStatement.status");
141    process(json, "MedicationStatement.taken");
142    process(json, "NamingSystem.status");
143    process(json, "NutritionOrder.status");
144    process(json, "Observation.status");
145    process(json, "OperationOutcome.issue.severity");
146    process(json, "Organization.active");
147    process(json, "Patient.active");
148    process(json, "Patient.deceased[x]");
149    process(json, "Patient.animal");
150    process(json, "Patient.link");
151    process(json, "PaymentNotice.status");
152    process(json, "PaymentReconciliation.status");
153    process(json, "Person.active");
154    process(json, "Procedure.status");
155    process(json, "Procedure.notDone");
156    process(json, "ProcedureRequest.status");
157    process(json, "ProcedureRequest.intent");
158    process(json, "ProcedureRequest.doNotPerform");
159    process(json, "ProcessRequest.status");
160    process(json, "ProcessResponse.status");
161    process(json, "Questionnaire.item.enableWhen");
162    process(json, "QuestionnaireResponse.status");
163    process(json, "ReferralRequest.status");
164    process(json, "ReferralRequest.intent");
165    process(json, "RelatedPerson.active");
166    process(json, "RequestGroup.status");
167    process(json, "RequestGroup.intent");
168    process(json, "ResearchStudy.status");
169    process(json, "ResearchSubject.status");
170    process(json, "Schedule.active");
171    process(json, "Specimen.status");
172    process(json, "Subscription.status");
173    process(json, "SupplyDelivery.status");
174    process(json, "SupplyRequest.status");
175    process(json, "TestReport.status");
176    process(json, "ValueSet.compose.include.filter");
177    process(json, "VisionPrescription.status");
178  }
179
180  private void process(JsonObject json, String name) {
181    JsonObject j = json.getJsonObject(name);
182    if (j == null) {
183      System.out.println("Can't find "+name);
184    } else {
185      j.add("modifier", true);
186    }
187    
188  }
189}