|
75 | 75 | (deftest test-generate-class
|
76 | 76 |
|
77 | 77 | (testing "base"
|
78 |
| - (is (= "export type Patient = DomainResource & {\n address?: Address[];\n managingOrganization?: Reference;\n name?: HumanName[];\n birthDate?: string;\n multipleBirth?: boolean | number;\n deceased?: string | boolean;\n photo?: Attachment[];\n link?: BackboneElement[];\n active?: boolean;\n communication?: BackboneElement[];\n identifier?: Identifier[];\n telecom?: ContactPoint[];\n generalPractitioner?: Reference[];\n gender?: string;\n maritalStatus?: CodeableConcept;\n contact?: BackboneElement[];\n};" |
| 78 | + (is (= "export type Patient = DomainResource & {\n address?: Address[];\n managingOrganization?: Reference;\n name?: HumanName[];\n birthDate?: string;\n multipleBirth?: boolean | number;\n deceased?: string | boolean;\n photo?: Attachment[];\n link?: PatientLink[];\n active?: boolean;\n communication?: PatientCommunication[];\n identifier?: Identifier[];\n telecom?: ContactPoint[];\n generalPractitioner?: Reference[];\n gender?: string;\n maritalStatus?: CodeableConcept;\n contact?: PatientContact[];\n};" |
79 | 79 | (gen.typescript/generate-class (fixt/get-data :patient-ir-schema)))))
|
80 | 80 |
|
81 | 81 | (testing "empty elements"
|
|
91 | 91 | :deps #{}}))))
|
92 | 92 |
|
93 | 93 | (testing "with inner classes"
|
94 |
| - (is (= "export type Patient_Link = BackboneElement & {\n type: string;\n other: Reference;\n};\n\nexport type Patient_Communication = BackboneElement & {\n language: CodeableConcept;\n preferred?: boolean;\n};\n\nexport type Patient_Contact = BackboneElement & {\n name?: HumanName;\n gender?: string;\n period?: Period;\n address?: Address;\n telecom?: ContactPoint[];\n organization?: Reference;\n relationship?: CodeableConcept[];\n};\n\nexport type Patient = DomainResource & {\n address?: Address[];\n managingOrganization?: Reference;\n name?: HumanName[];\n birthDate?: string;\n multipleBirth?: boolean | number;\n deceased?: string | boolean;\n photo?: Attachment[];\n link?: BackboneElement[];\n active?: boolean;\n communication?: BackboneElement[];\n identifier?: Identifier[];\n telecom?: ContactPoint[];\n generalPractitioner?: Reference[];\n gender?: string;\n maritalStatus?: CodeableConcept;\n contact?: BackboneElement[];\n};" |
| 94 | + (is (= "export type PatientLink = BackboneElement & {\n type: string;\n other: Reference;\n};\n\nexport type PatientCommunication = BackboneElement & {\n language: CodeableConcept;\n preferred?: boolean;\n};\n\nexport type PatientContact = BackboneElement & {\n name?: HumanName;\n gender?: string;\n period?: Period;\n address?: Address;\n telecom?: ContactPoint[];\n organization?: Reference;\n relationship?: CodeableConcept[];\n};\n\nexport type Patient = DomainResource & {\n address?: Address[];\n managingOrganization?: Reference;\n name?: HumanName[];\n birthDate?: string;\n multipleBirth?: boolean | number;\n deceased?: string | boolean;\n photo?: Attachment[];\n link?: PatientLink[];\n active?: boolean;\n communication?: PatientCommunication[];\n identifier?: Identifier[];\n telecom?: ContactPoint[];\n generalPractitioner?: Reference[];\n gender?: string;\n maritalStatus?: CodeableConcept;\n contact?: PatientContact[];\n};" |
95 | 95 | (gen.typescript/generate-class (fixt/get-data :patient-ir-schema)
|
96 | 96 | (map gen.typescript/generate-class (:backbone-elements (fixt/get-data :patient-ir-schema))))))))
|
97 | 97 |
|
98 |
| -#_ |
99 |
| -(deftest test-generate-datatypes |
100 |
| - (is |
101 |
| - (= [{:path (io/file "base/__init__.py"), |
102 |
| - :content |
103 |
| - "from pydantic import *\nfrom typing import Optional, List\n\nclass Coding(Element):\n code: Optional[str] = None\n system: Optional[str] = None\n display: Optional[str] = None\n version: Optional[str] = None\n user_selected: Optional[bool] = None"}] |
104 |
| - (sut/generate-datatypes generator [fixtures/coding-ir-schema])))) |
| 98 | +#_(deftest test-generate-datatypes |
| 99 | + (is |
| 100 | + (= [{:path (io/file "base/__init__.py"), |
| 101 | + :content |
| 102 | + "from pydantic import *\nfrom typing import Optional, List\n\nclass Coding(Element):\n code: Optional[str] = None\n system: Optional[str] = None\n display: Optional[str] = None\n version: Optional[str] = None\n user_selected: Optional[bool] = None"}] |
| 103 | + (sut/generate-datatypes generator [fixtures/coding-ir-schema])))) |
105 | 104 |
|
106 | 105 | (deftest test-generate-resources
|
107 | 106 | (is
|
108 | 107 | (= {:path (io/file "hl7-fhir-r4-core/Patient.ts"),
|
109 | 108 | :content
|
110 |
| - "import { Address } from \"./Address\";\nimport { Attachment } from \"./Attachment\";\nimport { Period } from \"./Period\";\nimport { CodeableConcept } from \"./CodeableConcept\";\nimport { ContactPoint } from \"./ContactPoint\";\nimport { HumanName } from \"./HumanName\";\nimport { DomainResource } from \"./DomainResource\";\nimport { Reference } from \"./Reference\";\nimport { Identifier } from \"./Identifier\";\nimport { BackboneElement } from \"./BackboneElement\";\n\nexport type Patient_Link = BackboneElement & {\n type: string;\n other: Reference;\n};\n\nexport type Patient_Communication = BackboneElement & {\n language: CodeableConcept;\n preferred?: boolean;\n};\n\nexport type Patient_Contact = BackboneElement & {\n name?: HumanName;\n gender?: string;\n period?: Period;\n address?: Address;\n telecom?: ContactPoint[];\n organization?: Reference;\n relationship?: CodeableConcept[];\n};\n\nexport type Patient = DomainResource & {\n address?: Address[];\n managingOrganization?: Reference;\n name?: HumanName[];\n birthDate?: string;\n multipleBirth?: boolean | number;\n deceased?: string | boolean;\n photo?: Attachment[];\n link?: BackboneElement[];\n active?: boolean;\n communication?: BackboneElement[];\n identifier?: Identifier[];\n telecom?: ContactPoint[];\n generalPractitioner?: Reference[];\n gender?: string;\n maritalStatus?: CodeableConcept;\n contact?: BackboneElement[];\n};"} |
111 |
| - (sut/generate-resource-module generator (fixt/get-data :patient-ir-schema)) |
112 |
| - |
113 |
| - ))) |
| 109 | + "import { Address } from \"./Address\";\nimport { Attachment } from \"./Attachment\";\nimport { Period } from \"./Period\";\nimport { CodeableConcept } from \"./CodeableConcept\";\nimport { ContactPoint } from \"./ContactPoint\";\nimport { HumanName } from \"./HumanName\";\nimport { DomainResource } from \"./DomainResource\";\nimport { Reference } from \"./Reference\";\nimport { Identifier } from \"./Identifier\";\nimport { BackboneElement } from \"./BackboneElement\";\n\nexport type PatientLink = BackboneElement & {\n type: string;\n other: Reference;\n};\n\nexport type PatientCommunication = BackboneElement & {\n language: CodeableConcept;\n preferred?: boolean;\n};\n\nexport type PatientContact = BackboneElement & {\n name?: HumanName;\n gender?: string;\n period?: Period;\n address?: Address;\n telecom?: ContactPoint[];\n organization?: Reference;\n relationship?: CodeableConcept[];\n};\n\nexport type Patient = DomainResource & {\n address?: Address[];\n managingOrganization?: Reference;\n name?: HumanName[];\n birthDate?: string;\n multipleBirth?: boolean | number;\n deceased?: string | boolean;\n photo?: Attachment[];\n link?: PatientLink[];\n active?: boolean;\n communication?: PatientCommunication[];\n identifier?: Identifier[];\n telecom?: ContactPoint[];\n generalPractitioner?: Reference[];\n gender?: string;\n maritalStatus?: CodeableConcept;\n contact?: PatientContact[];\n};"} |
| 110 | + (sut/generate-resource-module generator (fixt/get-data :patient-ir-schema))))) |
114 | 111 |
|
115 | 112 | #_(deftest test-generate-search-params
|
116 | 113 | (is
|
117 | 114 | (= [{:path (io/file "search/PatientSearchParameters.py"),
|
118 | 115 | :content
|
119 | 116 | "from typing import Optional\n\nclass PatientSearchParameters(DomainResourceSearchParameters):\n id: Optional[str] = None\n active: Optional[str] = None\n address: Optional[str] = None\n address_city: Optional[str] = None\n address_country: Optional[str] = None\n address_postalcode: Optional[str] = None\n address_state: Optional[str] = None\n address_use: Optional[str] = None\n age: Optional[str] = None\n birth_order_boolean: Optional[str] = None\n birthdate: Optional[str] = None\n death_date: Optional[str] = None\n deceased: Optional[str] = None\n email: Optional[str] = None\n ethnicity: Optional[str] = None\n family: Optional[str] = None\n gender: Optional[str] = None\n general_practitioner: Optional[str] = None\n given: Optional[str] = None\n identifier: Optional[str] = None\n language: Optional[str] = None\n link: Optional[str] = None\n mothers_maiden_name: Optional[str] = None\n name: Optional[str] = None\n organization: Optional[str] = None\n part_agree: Optional[str] = None\n phone: Optional[str] = None\n phonetic: Optional[str] = None\n race: Optional[str] = None\n telecom: Optional[str] = None"}]
|
| 117 | + (sut/generate-search-params generator (fixt/get-data :patient-search-params-ir-schema)) |
| 118 | + |
120 | 119 | (sut/generate-search-params generator fixtures/patient-search-params-ir-schemas))))
|
121 | 120 |
|
122 | 121 | #_(deftest generate-constraints
|
|
143 | 142 | :content
|
144 | 143 | "from pydantic import *\nfrom typing import Optional, List\nfrom ..base import *\n\nclass Observation_ReferenceRange(BackboneElement):\n age: Optional[Range] = None\n low: Optional[Quantity] = None\n high: Optional[Quantity] = None\n text: Optional[str] = None\n type: Optional[CodeableConcept] = None\n applies_to: Optional[List[CodeableConcept]] = None\n\nclass Observation_Component_ReferenceRange(BackboneElement):\n age: Optional[Range] = None\n low: Optional[Quantity] = None\n high: Optional[Quantity] = None\n text: Optional[str] = None\n type: Optional[CodeableConcept] = None\n applies_to: Optional[List[CodeableConcept]] = None\n\nclass Observation_Component(BackboneElement):\n reference_range: Optional[List[Observation_Component_ReferenceRange]] = None\n interpretation: Optional[List[CodeableConcept]] = None\n value_time: Optional[str] = None\n value_quantity: Optional[Quantity] = None\n value_string: Optional[str] = None\n value_ratio: Optional[Ratio] = None\n value_boolean: Optional[bool] = None\n value_date_time: Optional[str] = None\n value_sampled_data: Optional[SampledData] = None\n code: CodeableConcept\n value_codeable_concept: Optional[CodeableConcept] = None\n value_period: Optional[Period] = None\n value_range: Optional[Range] = None\n value_integer: Optional[int] = None\n data_absent_reason: Optional[CodeableConcept] = None\n\nclass Hdlcholesterol(DomainResource):\n meta: Meta = Meta(profile=[\"http://hl7.org/fhir/StructureDefinition/hdlcholesterol\"])\n category: Optional[List[CodeableConcept]] = None\n reference_range: list[Observation_ReferenceRange] = []\n interpretation: Optional[List[CodeableConcept]] = None\n encounter: Optional[Reference] = None\n method: Optional[CodeableConcept] = None\n value_time: Optional[str] = None\n specimen: Optional[Reference] = None\n value_quantity: Optional[Quantity] = None\n value_string: Optional[str] = None\n value_ratio: Optional[Ratio] = None\n value_boolean: Optional[bool] = None\n value_date_time: Optional[str] = None\n component: Optional[List[Observation_Component]] = None\n note: Optional[List[Annotation]] = None\n value_sampled_data: Optional[SampledData] = None\n effective_date_time: Optional[str] = None\n status: str\n code: CodeableConcept\n identifier: Optional[List[Identifier]] = None\n effective_timing: Optional[Timing] = None\n value_codeable_concept: Optional[CodeableConcept] = None\n body_site: Optional[CodeableConcept] = None\n focus: Optional[List[Reference]] = None\n issued: Optional[str] = None\n value_period: Optional[Period] = None\n device: Optional[Reference] = None\n effective_instant: Optional[str] = None\n based_on: Optional[List[Reference]] = None\n value_range: Optional[Range] = None\n part_of: Optional[List[Reference]] = None\n value_integer: Optional[int] = None\n subject: Optional[Reference] = None\n performer: Optional[List[Reference]] = None\n data_absent_reason: Optional[CodeableConcept] = None\n effective_period: Optional[Period] = None"}]
|
145 | 144 | (sut/generate-constraints generator fixtures/observation-constraints-ir-schema))))
|
| 145 | + |
| 146 | +(comment |
| 147 | + (fixt/load-data!) |
| 148 | + |
| 149 | + (fixt/get-data :patient-search-params-ir-schema) |
| 150 | + |
| 151 | + @fixt/data |
| 152 | + |
| 153 | + ; |
| 154 | + ) |
0 commit comments