mirah-ruby 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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