Class: OrcaApi::PatientService

Inherits:
Service
  • Object
show all
Defined in:
lib/orca_api/patient_service.rb,
lib/orca_api/patient_service/income.rb,
lib/orca_api/patient_service/maiden.rb,
lib/orca_api/patient_service/pension.rb,
lib/orca_api/patient_service/pi_money.rb,
lib/orca_api/patient_service/personally.rb,
lib/orca_api/patient_service/care_common.rb,
lib/orca_api/patient_service/pi_etc_money.rb,
lib/orca_api/patient_service/income_common.rb,
lib/orca_api/patient_service/special_notes.rb,
lib/orca_api/patient_service/care_insurance.rb,
lib/orca_api/patient_service/pi_money_common.rb,
lib/orca_api/patient_service/contraindication.rb,
lib/orca_api/patient_service/health_insurance.rb,
lib/orca_api/patient_service/public_insurance.rb,
lib/orca_api/patient_service/accident_insurance.rb,
lib/orca_api/patient_service/care_certification.rb,
lib/orca_api/patient_service/health_public_insurance.rb,
lib/orca_api/patient_service/health_public_insurance_common.rb

Overview

患者情報を扱うサービスを表現したクラス

Defined Under Namespace

Classes: AccidentInsurance, CareCertification, CareCommon, CareInsurance, Contraindication, CreateResult, HealthInsurance, HealthPublicInsurance, HealthPublicInsuranceCommon, Income, IncomeCommon, Maiden, Pension, Personally, PiEtcMoney, PiMoney, PiMoneyCommon, PublicInsurance, SpecialNotes

Instance Attribute Summary

Attributes inherited from Service

#orca_api

患者関連情報 collapse

Instance Method Summary collapse

Methods inherited from Service

#initialize, reuse_session

Constructor Details

This class inherits a constructor from OrcaApi::Service

Constructor Details

This class inherits a constructor from OrcaApi::Service

Instance Method Details

#create(patient_information, allow_duplication: false, patient_id: "*") ⇒ OrcaApi::PatientService::CreateResult

患者情報の登録

Parameters:

  • patient_information (Hash)

    登録する患者情報。 全角項目で(半角全角変換)を記載している項目は半角文字を全角文字へ変換します。拡張文字は■に変換します。

    • "WholeName" (String) 漢字氏名/50/必須/全角25文字
    • "WholeName_inKana" (String) カナ氏名/50/必須/全角25文字(半角全角変換)
    • "BirthDate" (String) 生年月日/10/必須
    • "Sex" (String) 性別/1/1:男、2:女
    • "HouseHolder_WholeName" (String) 世帯主名称/50/全角25文字
    • "Relationship" (String) 続柄/30/全角15文字(半角全角変換)
    • "Occupation" (String) 職業/20/全角15文字(半角全角変換)
    • "NickName" (String) 通称名称/50/全角25文字
    • "CellularNumber" (String) 携帯電話番号/15/半角
    • "FaxNumber" (String) 15/半角
    • "EmailAddress" (String) メールアドレス/50
    • "Home_Address_Information" (Hash) 自宅情報
      • "Address_ZipCode" (String) 郵便番号/7/半角。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress1" (String) 住所1/100/全角50文字(半角全角変換)。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress2" (String) 住所2(番地番号)/100/全角50文字(半角全角変換)
      • "PhoneNumber1" (String) 自宅電話番号/15/半角
      • "PhoneNumber2" (String) 連絡先電話番号/15/半角
    • "WorkPlace_Information" (Hash) 勤務先情報
      • "WholeName" (String) 勤務先名称/50
      • "Address_ZipCode" (String) 郵便番号/7/半角。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress1" (String) 住所1/100/全角50文字(半角全角変換)。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress2" (String) 住所2(番地番号)/100/全角50文字(半角全角変換)
      • "PhoneNumber" (String) 勤務先電話番号/15/半角
    • "Contact_Information" (Hash) 連絡先情報
      • "WholeName" (String) 連絡先名/50/全角25文字(半角全角変換)
      • "Relationship" (String) 連絡先続柄/30/全角15文字(半角全角変換)
      • "Address_ZipCode" (String) 郵便番号/7/半角。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress1" (String) 住所1/100/全角50文字(半角全角変換)。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress2" (String) 住所2(番地番号)/100/全角50文字(半角全角変換)
      • "PhoneNumber1" (String) 電話番号昼/15/半角
      • "PhoneNumber2" (String) 電話番号夜/15/半角
    • "Home2_Information" (Hash) 帰省先情報
      • "WholeName" (String) 帰省先名/50/全角25文字(半角全角変換)
      • "Address_ZipCode" (String) 郵便番号/7/半角。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress1" (String) 住所1/100/全角50文字(半角全角変換)。 郵便番号があり住所1に設定がなければ郵便番号から住所を編集します。  郵便番号に設定がない場合は住所1から郵便番号を編集します。(システム管理の設定による)  
      • "WholeAddress2" (String) 住所2(番地番号)/100/全角50文字(半角全角変換)
      • "PhoneNumber" (String) 電話番号/15/半角
      • "Contraindication1" (String) 禁忌1/100/全角50文字(半角全角変換)
      • "Contraindication2" (String) 禁忌2/100/全角50文字(半角全角変換)
      • "Allergy1" (String) アレルギー1/100/全角50文字(半角全角変換)
      • "Allergy2" (String) アレルギー2/100/全角50文字(半角全角変換)
      • "Infection1" (String) 感染症1/100/全角50文字(半角全角変換)
      • "Infection2" (String) 感染症2/100/全角50文字(半角全角変換)
      • "Comment1" (String) コメント1/100
      • "Comment2" (String) コメント2/100
      • "TestPatient_Flag" (String) テスト患者区分/1
      • "Death_Flag" (String) 死亡区分/1
      • "Reduction_Reason" (String) 減免事由/2/数値2桁(システム管理の減免事由情報)/未設定は「00 該当なし」とします
      • "Discount" (String) 割引率/2/数値2桁(システム管理の割引率情報)/未設定は「00 該当なし」とします
      • "Condition1" (String) 状態1/2/数値2桁(システム管理の状態コメント情報1)/未設定は「00 該当なし」とします
      • "Condition2" (String) 状態2/2/数値2桁(システム管理の状態コメント情報2)/未設定は「00 該当なし」とします
      • "Condition3" (String) 状態3/2/数値2桁(システム管理の状態コメント情報3)/未設定は「00 該当なし」とします
  • allow_duplication (Boolean)

    trueの場合は重複登録警告を無視して登録を行う

  • patient_id (String)

    作成する患者の患者番号を明示的に指定

Returns:

See Also:



135
136
137
138
139
140
141
# File 'lib/orca_api/patient_service.rb', line 135

def create(patient_information, allow_duplication: false, patient_id: "*")
  res = CreateResult.new(call_01(patient_id, patient_information, "New"))
  if !res.ok? && !res.duplicated_patient_candidates.empty? && allow_duplication
    res = CreateResult.new(call_02(patient_information, "New", res))
  end
  res
end

#destroy(id, force: false) ⇒ Object

患者情報の削除

Parameters:

  • id (String)

    患者ID

  • force (Boolean)

    trueの場合は強制的に削除する



191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
# File 'lib/orca_api/patient_service.rb', line 191

def destroy(id, force: false)
  res = Result.new(call_01(id, nil, "Delete"))
  if !res.locked?
    locked_result = res
  end
  if !res.ok?
    return res
  end

  res = Result.new(call_02(res.patient_information, "Delete", res))
  if res.api_result != "S20"
    return res
  end

  res = Result.new(call_02(res.patient_information, "Delete", res))
  if res.ok?
    # 該当患者に受診履歴、病名等の入力がない場合
    locked_result = nil
    return res
  end
  if res.api_result != "S20" || !force
    return res
  end

  # 該当患者に受診履歴、病名等の入力がある場合
  res = Result.new(call_02(res.patient_information, "Delete", res))
  if res.ok?
    locked_result = nil
  end
  res
ensure
  unlock(locked_result)
end

#fetch_accident_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 251

#fetch_health_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 236

#fetch_pi_moneyObject



# File 'lib/orca_api/patient_service.rb', line 305

#get(id) ⇒ Result

患者情報の取得

Parameters:

  • id (String)

    患者ID

Returns:

  • (Result)

    日レセからのレスポンス

See Also:



150
151
152
153
154
155
156
157
158
159
160
# File 'lib/orca_api/patient_service.rb', line 150

def get(id)
  Result.new(
    orca_api.call(
      "/api01rv2/patientgetv2",
      http_method: :get,
      params: {
        id: id
      }
    )
  )
end

#get_accident_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 248

#get_care_certificationObject



# File 'lib/orca_api/patient_service.rb', line 296

#get_care_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 290

#get_contraindicationObject



# File 'lib/orca_api/patient_service.rb', line 284

#get_health_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 233

#get_health_public_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 227

#get_incomeObject



# File 'lib/orca_api/patient_service.rb', line 257

#get_maidenObject



# File 'lib/orca_api/patient_service.rb', line 268

#get_pensionObject



# File 'lib/orca_api/patient_service.rb', line 263

#get_personallyObject



# File 'lib/orca_api/patient_service.rb', line 279

#get_pi_etc_moneyObject



# File 'lib/orca_api/patient_service.rb', line 311

#get_pi_moneyObject



# File 'lib/orca_api/patient_service.rb', line 302

#get_public_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 242

#get_special_notesObject



# File 'lib/orca_api/patient_service.rb', line 273

#update(id, patient_information) ⇒ Object

患者情報の更新 patient_informationは PatientService#create と同じ形式

Parameters:

  • id (String)

    患者ID

  • patient_information (Hash)

    更新する患者情報

See Also:



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/orca_api/patient_service.rb', line 168

def update(id, patient_information)
  res = Result.new(call_01(id, nil, "Modify"))
  if !res.locked?
    locked_result = res
  end
  if !res.ok?
    return res
  end

  patient_information = deep_merge_for_request_body(res.patient_information, patient_information)
  res = Result.new(call_02(patient_information, "Modify", res))
  if res.ok?
    locked_result = nil
  end
  res
ensure
  unlock(locked_result)
end

#update_accident_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 254

#update_care_certificationObject



# File 'lib/orca_api/patient_service.rb', line 299

#update_care_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 293

#update_contraindicationObject



# File 'lib/orca_api/patient_service.rb', line 287

#update_health_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 239

#update_health_public_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 230

#update_incomeObject



# File 'lib/orca_api/patient_service.rb', line 260

#update_maidenObject



# File 'lib/orca_api/patient_service.rb', line 268

#update_pensionObject



# File 'lib/orca_api/patient_service.rb', line 263

#update_personallyObject



# File 'lib/orca_api/patient_service.rb', line 279

#update_pi_etc_moneyObject



# File 'lib/orca_api/patient_service.rb', line 314

#update_pi_moneyObject



# File 'lib/orca_api/patient_service.rb', line 308

#update_public_insuranceObject



# File 'lib/orca_api/patient_service.rb', line 245

#update_special_notesObject



# File 'lib/orca_api/patient_service.rb', line 276