mirah-ruby 0.2.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76ec40df793b5716ae1e5f3ab4ff5c2163634910af216668912de9861d357d2f
4
- data.tar.gz: 166a1138b4a93f953b1914ebdd13785fcf8f175bc2615c3c19c813ba116c32f0
3
+ metadata.gz: 41451cd5cce251f00e1436c8a7aae2140fe8fbc0c34b8a559531684cbc415c10
4
+ data.tar.gz: 51b5c3d5095058f4da1b2e0ac5fd36f9fcfdf00ac43dba25b499a0254b87b05b
5
5
  SHA512:
6
- metadata.gz: 6f9d8daebe43ffc1e5e95e98cb8ae37fd82ef3a412c773291e82cbb4a9ed294cd339e74a3999388dc6b564d333ac36209a444235803155be78daa1c186d64deb
7
- data.tar.gz: 0071b8cba8dfc1d09d7fb731cd55f2719af3d4e1d57fe1b9366d95a64befa6c93f393e5018d08516c45e77f30a6d2eb3bdecdd3ceb4c67d11dd5d521ed3c6aac
6
+ metadata.gz: 8a0f1ccd84d3b52be85a2639127815ee2614f1a629c72f88d2b0e2629989b69112343f49990f732bc346016b79ffbc19c0fc26e208e06a065f2e9fc72321dc05
7
+ data.tar.gz: a2e0cb5cfb08bb316255ab708c1167d555e29b67cd753ac97a5aca447a640c20f67c497d9a8aa92a1b124045c1957d9420d501ae43a524c425d635ab623baec0
data/.circleci/config.yml CHANGED
@@ -5,15 +5,13 @@ orbs:
5
5
  jobs:
6
6
  test24:
7
7
  docker:
8
- - image: circleci/ruby:2.4.6-stretch-node
8
+ - image: cimg/ruby:2.4
9
9
  executor: ruby/default
10
10
  steps:
11
11
  - checkout
12
12
  - run:
13
13
  name: Configure Bundler
14
14
  command: |
15
- echo 'export BUNDLER_VERSION=1.16.6' >> $BASH_ENV
16
- source $BASH_ENV
17
15
  gem install bundler
18
16
  - run:
19
17
  name: Which bundler?
@@ -24,15 +22,13 @@ jobs:
24
22
  command: bundle exec rake spec
25
23
  test25:
26
24
  docker:
27
- - image: circleci/ruby:2.5-stretch-node
25
+ - image: cimg/ruby:2.5
28
26
  executor: ruby/default
29
27
  steps:
30
28
  - checkout
31
29
  - run:
32
30
  name: Configure Bundler
33
31
  command: |
34
- echo 'export BUNDLER_VERSION=1.16.6' >> $BASH_ENV
35
- source $BASH_ENV
36
32
  gem install bundler
37
33
  - run:
38
34
  name: Which bundler?
@@ -43,7 +39,7 @@ jobs:
43
39
  command: bundle exec rake spec
44
40
  test26:
45
41
  docker:
46
- - image: circleci/ruby:2.6-stretch-node
42
+ - image: cimg/ruby:2.6
47
43
  executor: ruby/default
48
44
  steps:
49
45
  - checkout
@@ -62,7 +58,26 @@ jobs:
62
58
  command: bundle exec rake spec
63
59
  test27:
64
60
  docker:
65
- - image: circleci/ruby:2.7-node
61
+ - image: cimg/ruby:2.7
62
+ executor: ruby/default
63
+ steps:
64
+ - checkout
65
+ - run:
66
+ name: Configure Bundler
67
+ command: |
68
+ echo 'export BUNDLER_VERSION=2.1.4' >> $BASH_ENV
69
+ source $BASH_ENV
70
+ gem install bundler
71
+ - run:
72
+ name: Which bundler?
73
+ command: bundle -v
74
+ - ruby/bundle-install
75
+ - run:
76
+ name: Tests
77
+ command: bundle exec rake spec
78
+ test31:
79
+ docker:
80
+ - image: cimg/ruby:3.1.2
66
81
  executor: ruby/default
67
82
  steps:
68
83
  - checkout
@@ -81,6 +96,7 @@ jobs:
81
96
  command: bundle exec rake spec
82
97
 
83
98
 
99
+
84
100
  workflows:
85
101
  version: 2
86
102
  test:
@@ -89,5 +105,6 @@ workflows:
89
105
  - test25
90
106
  - test26
91
107
  - test27
108
+ - test31
92
109
 
93
110
 
data/lib/mirah/client.rb CHANGED
@@ -104,7 +104,8 @@ module Mirah
104
104
  # @option input_values [String, nil] :primary_language see {Data::Patient#primary_language}
105
105
  # @option input_values [String, nil] :email see {Data::Patient#email}
106
106
  # @option input_values [String, nil] :phone_number see {Data::Patient#phone_number}
107
- # @option input_values [String, nil] :external_managing_organization_id see {Data::Patient#external_managing_organization_id}
107
+ # @option input_values [String, nil] :external_managing_organization_id
108
+ # see {Data::Patient#external_managing_organization_id}
108
109
  # @return [PushResult<Data::Patient>] the operation result with a patient on success
109
110
  def push_patient(external_id:, **input_values)
110
111
  mutate(Graphql::Mutations::CreateOrUpdatePatientMutation,
@@ -301,6 +302,123 @@ module Mirah
301
302
  Data::Appointment, 'createOrUpdateAppointment')
302
303
  end
303
304
 
305
+ #################################################################################################################
306
+ # DIAGNOSTIC CODE METHODS
307
+ #################################################################################################################
308
+
309
+ # Find an diagnostic code by the given Mirah internal UUID. This method should be used if you already know the Mirah
310
+ # identifier. If you wish to query by your own system identifier, you should use
311
+ # {#find_diagnostic_code_by_external_id}
312
+ #
313
+ # @since 0.4.0
314
+ # @param id [String] Mirah UUID for the diagnostic code
315
+ # @return [Data::DiagnosticCode, nil] the code, or nil if the record does not exist.
316
+ def find_diagnostic_code(id)
317
+ query_record(Graphql::Queries::DiagnosticCodeIdQuery, id, Data::DiagnosticCode, 'diagnosticCode')
318
+ end
319
+
320
+ # Find a diagnostic code by your external id. This is a convenience method. If you wish to query a list of
321
+ # codes by external id, please use {Client#query_diagnostic_codes}.
322
+ #
323
+ # @since 0.4.0
324
+ # @param external_id [String] The identifier of the system of record
325
+ # @return [Data::DiagnosticCode, nil] the code, or nil if the record does not exist.
326
+ def find_diagnostic_code_by_external_id(external_id)
327
+ query_record_by_external_id(Graphql::Queries::DiagnosticCodeExternalIdQuery,
328
+ external_id,
329
+ Data::DiagnosticCode,
330
+ 'diagnosticCodeExternal')
331
+ end
332
+
333
+ # Query for diagnostic codes. You may specify a set of parameters as defined in
334
+ # {Mirah::Filters::DiagnosticCodeFilters}.
335
+ # Results are returned in a paginated format. See {Collection} for how to page results.
336
+ # @since 0.4.0
337
+ # @param external_id [Array<String>] See {Mirah::Filters::DiagnosticCodeFilters#external_id}
338
+ # @param search [Array<String>] See {Mirah::Filters::DiagnosticCodeFilters#search}
339
+ # @return [Collection<Data::Appointment>] a collection of pageable codes.
340
+ def query_diagnostic_codes(external_id: nil, search: nil)
341
+ query_connection(
342
+ Graphql::Queries::DiagnosticCodeQuery,
343
+ Filters::DiagnosticCodeFilters.new(external_id: external_id, search: search),
344
+ Filters::Paging.default,
345
+ Data::DiagnosticCode,
346
+ 'diagnosticCodes'
347
+ )
348
+ end
349
+
350
+ # Create or update a diagnosis code. You must specify an external identifier, all other parameters are optional,
351
+ # but you may receive errors if you attempt to specify too few parameters for an appointment that does not exist.
352
+ #
353
+ # @since 0.1.0
354
+ # @param external_id [String] the external identifier for this code
355
+ # @option input_values [String, nil] :name see {Data::DiagnosticCode#name}
356
+ # @option input_values [String, nil] :code see {Data::DiagnosticCode#code}
357
+ # @return [PushResult<Data::DiagnosticCode>] the operation result with the code on success
358
+ def push_diagnostic_code(external_id:, **input_values)
359
+ mutate(Graphql::Mutations::CreateOrUpdateDiagnosticCodeMutation,
360
+ Inputs::DiagnosticCodeInput.new(input_values.merge(external_id: external_id)),
361
+ Data::DiagnosticCode, 'createOrUpdateDiagnosticCode')
362
+ end
363
+
364
+ #################################################################################################################
365
+ # PATIENT CONDITION METHODS
366
+ #################################################################################################################
367
+
368
+ # Find an condition by the given Mirah internal UUID. This method should be used if you already know the Mirah
369
+ # identifier. If you wish to query by your own system identifier, you should use
370
+ # {#find_patient_condition_by_external_id}
371
+ #
372
+ # @since 0.4.0
373
+ # @param id [String] Mirah UUID for the condition
374
+ # @return [Data::PatientCondition, nil] the code, or nil if the record does not exist.
375
+ def find_patient_condition(id)
376
+ query_record(Graphql::Queries::PatientConditionIdQuery, id, Data::PatientCondition, 'patientCondition')
377
+ end
378
+
379
+ # Find a condition by your external id. This is a convenience method. If you wish to query a list of
380
+ # codes by external id, please use {Client#query_patient_conditions}.
381
+ #
382
+ # @since 0.4.0
383
+ # @param external_id [String] The identifier of the system of record
384
+ # @return [Data::PatientCondition, nil] the code, or nil if the record does not exist.
385
+ def find_patient_condition_by_external_id(external_id)
386
+ query_record_by_external_id(Graphql::Queries::PatientConditionExternalIdQuery,
387
+ external_id,
388
+ Data::PatientCondition,
389
+ 'patientConditionExternal')
390
+ end
391
+
392
+ # Query for conditions. You may specify a set of parameters as defined in
393
+ # {Mirah::Filters::PatientConditionFilters}.
394
+ # Results are returned in a paginated format. See {Collection} for how to page results.
395
+ # @since 0.4.0
396
+ # @param external_id [Array<String>] See {Mirah::Filters::PatientConditionFilters#external_id}
397
+ # @return [Collection<Data::Appointment>] a collection of pageable codes.
398
+ def query_patient_conditions(external_id: nil)
399
+ query_connection(
400
+ Graphql::Queries::PatientConditionQuery,
401
+ Filters::PatientConditionFilters.new(external_id: external_id),
402
+ Filters::Paging.default,
403
+ Data::PatientCondition,
404
+ 'patientConditions'
405
+ )
406
+ end
407
+
408
+ # Create or update a condition. You must specify an external identifier, all other parameters are optional,
409
+ # but you may receive errors if you attempt to specify too few parameters for an appointment that does not exist.
410
+ #
411
+ # @since 0.1.0
412
+ # @param external_id [String] the external identifier for this code
413
+ # @option input_values [String, nil] :name see {Data::PatientCondition#name}
414
+ # @option input_values [String, nil] :code see {Data::PatientCondition#code}
415
+ # @return [PushResult<Data::PatientCondition>] the operation result with the code on success
416
+ def push_patient_condition(external_id:, **input_values)
417
+ mutate(Graphql::Mutations::CreateOrUpdatePatientConditionMutation,
418
+ Inputs::PatientConditionInput.new(input_values.merge(external_id: external_id)),
419
+ Data::PatientCondition, 'createOrUpdatePatientCondition')
420
+ end
421
+
304
422
  ##################################################################################################################
305
423
  # Internal methods
306
424
  ##################################################################################################################
@@ -411,7 +529,7 @@ module Mirah
411
529
  if response.errors[:data] == ['401 Unauthorized'] # rubocop:disable Style/GuardClause
412
530
  raise Errors::InvalidCredentials, 'The credentials you have supplied are invalid'
413
531
  else
414
- raise Errors::ServerError, 'Unknown error from Mirah server: ' + response.errors.values.flatten.join(',')
532
+ raise Errors::ServerError, "Unknown error from Mirah server: #{response.errors.values.flatten.join(',')}"
415
533
  end
416
534
  end
417
535
 
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mirah
4
+ module Data
5
+ # Diagnostic codes represent ICD10 or other codes that contain information on diagnosis. The Mirah system models
6
+ # this simply as a code and a name, effectively operating like a tag.
7
+ # For example, Major Depressive Disorder could be represented with the code F320.
8
+ class DiagnosticCode < BaseObject
9
+ # @!attribute [r] id
10
+ # @return [string] The internal Mirah identifier
11
+ attribute :id
12
+
13
+ # @!attribute [r] external_id
14
+ # @return [string] The identifier provided by your system
15
+ attribute :external_id
16
+
17
+ # @!attribute [r] name
18
+ # @return [string] A description of the code, e.g. "Major Depressive Disorder"
19
+ attribute :name
20
+
21
+ # @!attribute [r] code
22
+ # @return [string] A string representing the code, e.g. "F320"
23
+ attribute :code
24
+ end
25
+ end
26
+ end
@@ -15,12 +15,42 @@ module Mirah
15
15
 
16
16
  # @!attribute [r] given_name
17
17
  # @return [string] The patient's first or given name
18
+ # @deprecated use legal_given_name instead
18
19
  attribute :given_name
19
20
 
21
+ # @!attribute [r] legal_given_name
22
+ # @return [string] The patient's legal first or given name
23
+ attribute :legal_given_name
24
+
25
+ # @!attribute [r] preferred_given_name
26
+ # @return [string] The patient's preferred first or given name
27
+ attribute :preferred_given_name
28
+
20
29
  # @!attribute [r] family_name
21
30
  # @return [string] The patient's last or family name
31
+ # @deprecated use legal_family_name instead
22
32
  attribute :family_name
23
33
 
34
+ # @!attribute [r] legal_family_name
35
+ # @return [string] The patient's legal last or family name
36
+ attribute :legal_family_name
37
+
38
+ # @!attribute [r] preferred_family_name
39
+ # @return [string] The patient's preferred last or family name
40
+ attribute :preferred_family_name
41
+
42
+ # @!attribute [r] legal_name
43
+ # @return [string] The patient's full legal name.
44
+ attribute :legal_name
45
+
46
+ # @!attribute [r] preferred_name
47
+ # @return [string] The patient's full preferred name.
48
+ attribute :preferred_name
49
+
50
+ # @!attribute [r] preferred_pronouns
51
+ # @return [string] The patient's preferred pronouns.
52
+ attribute :preferred_pronouns
53
+
24
54
  # @!attribute [r] birth_date
25
55
  # @return [Date] The patient's date of birth.
26
56
  attribute :birth_date, serializer: Serializers::DateSerializer.new
@@ -29,6 +59,14 @@ module Mirah
29
59
  # @return [string] The patient's gender
30
60
  attribute :gender
31
61
 
62
+ # @!attribute [r] gender_identity
63
+ # @return [string] The patient's gender identity as free text
64
+ attribute :gender_identity
65
+
66
+ # @!attribute [r] gender_identity_fhir
67
+ # @return [string] The patient's gender identity as FHIR extension coded.
68
+ attribute :gender_identity_fhir
69
+
32
70
  # @!attribute [r] primary_language
33
71
  # @return [string] The patient's primary language
34
72
  attribute :primary_language
@@ -42,6 +80,11 @@ module Mirah
42
80
  # Please do not use a phone number which corresponds to a landline as text messages will not be received.
43
81
  attribute :phone_number
44
82
 
83
+ # @!attribute [r] timezone
84
+ # @return [string] The patient's timezone. If not specified, the organization's default will be used. Timezone
85
+ # should be formatted like: https://en.wikipedia.org/wiki/Tz_database
86
+ attribute :timezone
87
+
45
88
  # @!attribute [r] managing_organization_id
46
89
  # @return [string] The internal mirah id of the organization this patient is with
47
90
  attribute :managing_organization_id, path: %w[managingOrganization], target: 'id'
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mirah
4
+ module Data
5
+ class PatientCondition < BaseObject
6
+ # @!attribute [r] id
7
+ # @return [string] The internal Mirah identifier
8
+ attribute :id
9
+
10
+ # @!attribute [r] external_id
11
+ # @return [string] The identifier provided by your system
12
+ attribute :external_id
13
+
14
+ # @!attribute [r] status
15
+ # @return [string] The status of this condition
16
+ attribute :status
17
+
18
+ # @!attribute [r] onset_date
19
+ # @return [string] The date of onset
20
+ attribute :onset_date, serializer: Serializers::DateTimeSerializer.new
21
+
22
+ # @!attribute [r] abatement_date
23
+ # @return [string] The date of abatement
24
+ attribute :abatement_date, serializer: Serializers::DateTimeSerializer.new
25
+
26
+ # @!attribute [r] patient_id
27
+ # @return [string] The internal mirah id of the patient the condition applies to
28
+ attribute :patient_id, path: %w[patient], target: 'id'
29
+
30
+ # @!attribute [r] external_patient_id
31
+ # @return [string] Your system identifier for the patient the condition applies to
32
+ attribute :external_patient_id, path: %w[patient], target: 'externalId'
33
+
34
+ # @!attribute [r] diagnostic_code_id
35
+ # @return [string] The internal mirah id of the code the patient has been diagnosed with
36
+ attribute :diagnostic_code_id, path: %w[diagnosticCode], target: 'id'
37
+
38
+ # @!attribute [r] external_diagnostic_code_id
39
+ # @return [string] Your system identifier for the code the patient has been diagnosed with
40
+ attribute :external_diagnostic_code_id, path: %w[diagnosticCode], target: 'externalId'
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mirah
4
+ module Filters
5
+ # Input parameters and filters for queries returning {Data::DiagnosticCode} objects.
6
+ class DiagnosticCodeFilters < BaseObject
7
+ # @!attribute [r] external_id
8
+ # @return [Array<string>] An array of external identifiers to match.
9
+ attribute :external_id
10
+
11
+ # @!attribute [r] search
12
+ # @return [string] Smart search by name and other fields where appropriate
13
+ attribute :search
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mirah
4
+ module Filters
5
+ # Input parameters and filters for queries returning {Data::PatientCondition} objects.
6
+ class PatientConditionFilters < BaseObject
7
+ # @!attribute [r] external_id
8
+ # @return [Array<string>] An array of external identifiers to match.
9
+ attribute :external_id
10
+ end
11
+ end
12
+ end
@@ -24,6 +24,7 @@ module Mirah
24
24
  primaryLanguage
25
25
  email
26
26
  phoneNumber
27
+ timezone
27
28
  managingOrganization {
28
29
  id
29
30
  externalId
@@ -106,6 +107,39 @@ module Mirah
106
107
  }
107
108
  }
108
109
  GRAPHQL
110
+
111
+ DiagnosticCodeFragment = Graphql::ValidationClient.parse <<-'GRAPHQL'
112
+ fragment on DiagnosticCode {
113
+ id
114
+ externalId
115
+ name
116
+ code
117
+ identifier {
118
+ value
119
+ }
120
+ }
121
+ GRAPHQL
122
+
123
+ PatientConditionFragment = Graphql::ValidationClient.parse <<-'GRAPHQL'
124
+ fragment on PatientCondition {
125
+ id
126
+ externalId
127
+ patient {
128
+ id
129
+ externalId
130
+ }
131
+ diagnosticCode {
132
+ id
133
+ externalId
134
+ }
135
+ identifier {
136
+ value
137
+ }
138
+ onsetDate
139
+ abatementDate
140
+ status
141
+ }
142
+ GRAPHQL
109
143
  end
110
144
  end
111
145
  end
@@ -67,6 +67,38 @@ module Mirah
67
67
  }
68
68
  }
69
69
  GRAPHQL
70
+
71
+ # Create or update a diagnostic code
72
+ CreateOrUpdateDiagnosticCodeMutation = Graphql::ValidationClient.parse <<-'GRAPHQL'
73
+ mutation($input: CreateOrUpdateDiagnosticCodeInput!) {
74
+ createOrUpdateDiagnosticCode(input: $input) {
75
+ status
76
+ errors {
77
+ path
78
+ message
79
+ }
80
+ result {
81
+ ...Mirah::Graphql::Fragments::DiagnosticCodeFragment
82
+ }
83
+ }
84
+ }
85
+ GRAPHQL
86
+
87
+ # Create or update a patient condition
88
+ CreateOrUpdatePatientConditionMutation = Graphql::ValidationClient.parse <<-'GRAPHQL'
89
+ mutation($input: CreateOrUpdatePatientConditionInput!) {
90
+ createOrUpdatePatientCondition(input: $input) {
91
+ status
92
+ errors {
93
+ path
94
+ message
95
+ }
96
+ result {
97
+ ...Mirah::Graphql::Fragments::PatientConditionFragment
98
+ }
99
+ }
100
+ }
101
+ GRAPHQL
70
102
  end
71
103
  end
72
104
  end
@@ -191,6 +191,98 @@ module Mirah
191
191
  }
192
192
  }
193
193
  GRAPHQL
194
+
195
+ #========================================================================
196
+ # DIAGNOSTIC CODE QUERIES
197
+ #========================================================================
198
+
199
+ DiagnosticCodeQuery = Graphql::ValidationClient.parse <<-'GRAPHQL'
200
+ query(
201
+ $first: Int
202
+ $last: Int
203
+ $after: String
204
+ $before: String,
205
+ $externalId: [String!],
206
+ $search: String
207
+ ) {
208
+ diagnosticCodes(
209
+ first: $first
210
+ after: $after
211
+ before: $before
212
+ last: $last,
213
+ externalId: $externalId,
214
+ search: $search
215
+ ) {
216
+ nodes {
217
+ ...Mirah::Graphql::Fragments::DiagnosticCodeFragment
218
+ }
219
+ pageInfo {
220
+ ...Mirah::Graphql::Fragments::PageInfoFragment
221
+ }
222
+ }
223
+ }
224
+ GRAPHQL
225
+
226
+ DiagnosticCodeIdQuery = Graphql::ValidationClient.parse <<-'GRAPHQL'
227
+ query($id: ID!) {
228
+ diagnosticCode(id: $id) {
229
+ ...Mirah::Graphql::Fragments::DiagnosticCodeFragment
230
+ }
231
+ }
232
+ GRAPHQL
233
+
234
+ DiagnosticCodeExternalIdQuery = Graphql::ValidationClient.parse <<-'GRAPHQL'
235
+ query($externalId: String!) {
236
+ diagnosticCodeExternal(externalId: $externalId) {
237
+ ...Mirah::Graphql::Fragments::DiagnosticCodeFragment
238
+ }
239
+ }
240
+ GRAPHQL
241
+
242
+ #========================================================================
243
+ # PATIENT CONDITION QUERIES
244
+ #========================================================================
245
+
246
+ PatientConditionQuery = Graphql::ValidationClient.parse <<-'GRAPHQL'
247
+ query(
248
+ $first: Int
249
+ $last: Int
250
+ $after: String
251
+ $before: String,
252
+ $externalId: [String!]
253
+ ) {
254
+ patientConditions(
255
+ first: $first
256
+ after: $after
257
+ before: $before
258
+ last: $last,
259
+ externalId: $externalId
260
+ ) {
261
+ nodes {
262
+ ...Mirah::Graphql::Fragments::PatientConditionFragment
263
+ }
264
+ pageInfo {
265
+ ...Mirah::Graphql::Fragments::PageInfoFragment
266
+ }
267
+ }
268
+ }
269
+ GRAPHQL
270
+
271
+ PatientConditionIdQuery = Graphql::ValidationClient.parse <<-'GRAPHQL'
272
+ query($id: ID!) {
273
+ patientCondition(id: $id) {
274
+ ...Mirah::Graphql::Fragments::PatientConditionFragment
275
+ }
276
+ }
277
+ GRAPHQL
278
+
279
+ PatientConditionExternalIdQuery = Graphql::ValidationClient.parse <<-'GRAPHQL'
280
+ query($externalId: String!) {
281
+ patientConditionExternal(externalId: $externalId) {
282
+ ...Mirah::Graphql::Fragments::PatientConditionFragment
283
+ }
284
+ }
285
+ GRAPHQL
194
286
  end
195
287
  end
196
288
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mirah
4
+ module Inputs
5
+ # A set of parameters for updating a {Data::DiagnosticCocde}
6
+ class DiagnosticCodeInput < BaseInputObject
7
+ # @!attribute [r] external_id
8
+ # @return (see Mirah::Data::DiagnosticCode#external_id)
9
+ input :external_id, required: true
10
+
11
+ # @!attribute [r] name
12
+ # @return (see Mirah::Data::DiagnosticCode#name)
13
+ input :name, required: false
14
+
15
+ # @!attribute [r] name
16
+ # @return (see Mirah::Data::DiagnosticCode#code)
17
+ input :code, required: false
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mirah
4
+ module Inputs
5
+ # A set of parameters for updating a {Data::Appointment}
6
+ class PatientConditionInput < BaseInputObject
7
+ # @!attribute [r] external_id
8
+ # @return (see Mirah::Data::PatientCondition#external_id)
9
+ input :external_id, required: true
10
+
11
+ # @!attribute [r] onset_date
12
+ # @return (see Mirah::Data::PatientCondition#onset_date)
13
+ input :onset_date, required: false, serializer: Serializers::DateTimeSerializer.new
14
+
15
+ # @!attribute [r] abatement_date
16
+ # @return (see Mirah::Data::PatientCondition#abatement_date)
17
+ input :abatement_date, required: false, serializer: Serializers::DateTimeSerializer.new
18
+
19
+ # @!attribute [r] status
20
+ # @return (see Mirah::Data::PatientCondition#status)
21
+ input :status, required: true
22
+
23
+ # @!attribute [r] external_patient_id
24
+ # @return (see Mirah::Data::PatientCondition#external_patient_id)
25
+ input :external_patient_id, required: false
26
+
27
+ # @!attribute [r] external_diagnostic_code_id
28
+ # @return (see Mirah::Data::PatientCondition#external_diagnostic_code_id)
29
+ input :external_diagnostic_code_id, required: false
30
+ end
31
+ end
32
+ end