From 1d3d21d4bc19677f439c0ac76fd109148dba93f3 Mon Sep 17 00:00:00 2001 From: Grahame Grieve Date: Mon, 13 Jan 2020 12:59:56 +1100 Subject: [PATCH] fix problem converting opdef params to R5 --- .../hl7/fhir/convertors/VersionConvertor_10_30.java | 9 +++++++-- .../hl7/fhir/convertors/VersionConvertor_10_40.java | 10 ++++++++-- .../hl7/fhir/convertors/VersionConvertor_10_50.java | 10 ++++++++-- .../hl7/fhir/convertors/VersionConvertor_14_30.java | 7 ++++++- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_30.java b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_30.java index e6cbc82f0..2892f6c65 100644 --- a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_30.java +++ b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_30.java @@ -37,6 +37,7 @@ import org.hl7.fhir.dstu3.model.ConceptMap.ConceptMapGroupComponent; import org.hl7.fhir.dstu3.model.ConceptMap.SourceElementComponent; import org.hl7.fhir.dstu3.model.DocumentReference.ReferredDocumentStatus; import org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent; +import org.hl7.fhir.dstu3.model.Enumerations.SearchParamType; import org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent; import org.hl7.fhir.dstu3.model.ReferralRequest.ReferralPriority; import org.hl7.fhir.dstu3.model.StructureDefinition.StructureDefinitionKind; @@ -9225,7 +9226,12 @@ public class VersionConvertor_10_30 { tgt.setMin(src.getMin()); tgt.setMax(src.getMax()); tgt.setDocumentation(src.getDocumentation()); - tgt.setType(src.getType()); + if (Utilities.existsInList(src.getType(), "token", "reference", "composite", "number", "date", "quantity", "uri")) { + tgt.setType("string"); + tgt.setSearchType(SearchParamType.fromCode(src.getType())); + } else { + tgt.setType(src.getType()); + } tgt.setProfile(convertReference(src.getProfile())); tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) @@ -9245,7 +9251,6 @@ public class VersionConvertor_10_30 { tgt.setDocumentation(src.getDocumentation()); if (src.hasSearchType()) { tgt.setType(src.getSearchType().toCode()); - tgt.setType("string"); } else tgt.setType(src.getType()); if (src.hasProfile()) diff --git a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_40.java b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_40.java index c137088cb..989ec713b 100644 --- a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_40.java +++ b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_40.java @@ -52,6 +52,8 @@ import org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent; import org.hl7.fhir.r4.model.ElementDefinition; import org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent; import org.hl7.fhir.r4.model.Enumeration; +import org.hl7.fhir.r4.model.Enumerations.FHIRAllTypes; +import org.hl7.fhir.r4.model.Enumerations.SearchParamType; import org.hl7.fhir.r4.model.Immunization.ImmunizationPerformerComponent; import org.hl7.fhir.r4.model.ImplementationGuide.GuidePageGeneration; import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemAnswerOptionComponent; @@ -8852,7 +8854,12 @@ public class VersionConvertor_10_40 { tgt.setMin(src.getMin()); tgt.setMax(src.getMax()); tgt.setDocumentation(src.getDocumentation()); - tgt.setType(src.getType()); + if (Utilities.existsInList(src.getType(), "token", "reference", "composite", "number", "date", "quantity", "uri")) { + tgt.setType("string"); + tgt.setSearchType(SearchParamType.fromCode(src.getType())); + } else { + tgt.setType(src.getType()); + } tgt.addTargetProfile(src.getProfile().getReference()); tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) @@ -8872,7 +8879,6 @@ public class VersionConvertor_10_40 { tgt.setDocumentation(src.getDocumentation()); if (src.hasSearchType()) { tgt.setType(src.getSearchType().toCode()); - tgt.setType("string"); } else tgt.setType(src.getType()); for (org.hl7.fhir.r4.model.UriType t: src.getTargetProfile()) diff --git a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_50.java b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_50.java index 036ec8b91..4917ac368 100644 --- a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_50.java +++ b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_10_50.java @@ -54,7 +54,9 @@ import org.hl7.fhir.r5.model.ElementDefinition; import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent; import org.hl7.fhir.r5.model.Enumeration; import org.hl7.fhir.r5.model.Enumerations; +import org.hl7.fhir.r5.model.Enumerations.FHIRAllTypes; import org.hl7.fhir.r5.model.Enumerations.ResourceTypeEnum; +import org.hl7.fhir.r5.model.Enumerations.SearchParamType; import org.hl7.fhir.r5.model.Immunization.ImmunizationPerformerComponent; import org.hl7.fhir.r5.model.ImplementationGuide.GuidePageGeneration; import org.hl7.fhir.r5.model.Questionnaire.QuestionnaireItemAnswerOptionComponent; @@ -8911,7 +8913,12 @@ public class VersionConvertor_10_50 { tgt.setMin(src.getMin()); tgt.setMax(src.getMax()); tgt.setDocumentation(src.getDocumentation()); - tgt.setType(Enumerations.FHIRAllTypes.fromCode(src.getType())); + if (Utilities.existsInList(src.getType(), "token", "reference", "composite", "number", "date", "quantity", "uri")) { + tgt.setType(FHIRAllTypes.STRING); + tgt.setSearchType(SearchParamType.fromCode(src.getType())); + } else { + tgt.setType(Enumerations.FHIRAllTypes.fromCode(src.getType())); + } tgt.addTargetProfile(src.getProfile().getReference()); tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding())); for (org.hl7.fhir.dstu2.model.OperationDefinition.OperationDefinitionParameterComponent t : src.getPart()) @@ -8931,7 +8938,6 @@ public class VersionConvertor_10_50 { tgt.setDocumentation(src.getDocumentation()); if (src.hasSearchType()) { tgt.setType(src.getSearchType().toCode()); - tgt.setType("string"); } else tgt.setType(src.getType().toCode()); for (org.hl7.fhir.r5.model.UriType t: src.getTargetProfile()) diff --git a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_14_30.java b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_14_30.java index e6adb3416..26eab4a45 100644 --- a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_14_30.java +++ b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/VersionConvertor_14_30.java @@ -67,6 +67,7 @@ import org.hl7.fhir.dstu3.model.ConceptMap.SourceElementComponent; import org.hl7.fhir.dstu3.model.ContactDetail; import org.hl7.fhir.dstu3.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent; import org.hl7.fhir.dstu3.model.Enumeration; +import org.hl7.fhir.dstu3.model.Enumerations.SearchParamType; import org.hl7.fhir.dstu3.model.Timing.EventTiming; import org.hl7.fhir.dstu3.model.UsageContext; import org.hl7.fhir.exceptions.FHIRException; @@ -4756,8 +4757,12 @@ public class VersionConvertor_14_30 { tgt.setMax(src.getMax()); if (src.hasDocumentation()) tgt.setDocumentation(src.getDocumentation()); - if (src.hasType()) + if (Utilities.existsInList(src.getType(), "token", "reference", "composite", "number", "date", "quantity", "uri")) { + tgt.setType("string"); + tgt.setSearchType(SearchParamType.fromCode(src.getType())); + } else { tgt.setType(src.getType()); + } tgt.setSearchType(convertSearchParamType(src.getSearchType())); tgt.setProfile(convertReference(src.getProfile())); tgt.setBinding(convertOperationDefinitionParameterBindingComponent(src.getBinding()));