<jupyter_start><jupyter_text>レポート課題- 講義の最後に出したPythonのコード（下セル）について、以下の課題の中から１つ好きなものを選んでレポートを作成し提出すること。  1. どこでもいいので内容を書き換えて実行したのちに、下記の方法に従って結果ファイルを保存し、提出すること。 (初心者向け）  2. 「健康診断データ」「新型コロナ検査」以外の診療データをもう１セット作成してカルテに追加したのち、Pythonを実行して結果ファイルを提出すること。(チャレンジャー向け)  3. 下のコード中の「カルテ」オブジェクトは、講義中に説明した「カルテ」オブジェクトから変更点が２点ある。  「変更点」とコメントがついた２か所のコードの何がどう変わったのか、コメントに説明を付け足して提出すること。(経験者向け) ※ファイルの保存方法：左上メニューの「ファイル」から「.ipynbをダウンロード」を選んで、ダウンロード<jupyter_code># 日付を扱う別プログラムを読み込む
import datetime

###############　カルテ【オブジェクト】の作成　##################
class 簡易カルテ:
  # 初期状態の設定
  def __init__(self):
    # 変数の設定
    self.患者ID = None
    self.患者氏名 = None
    self.患者生年月日 = None
    self.診療データリスト = []

  # 患者の情報を記入する関数
  def 記入(self, ID, 名前, 生年月日):
    self.患者ID = ID
    self.患者氏名 = 名前
    self.患者生年月日 = 生年月日
  
  # 変更点１
  # 患者の年齢を計算
  def 年齢(self):
    生年 = int(生年月日.split('-')[0])
    return 2020 - 生年

  # 診療データを追加する関数
  def データ追加(self, データ):
    self.診療データリスト.append(データ)

  # 指定のページを表示する関数
  def 表示(self, ページ):
    if (ページ == 1):
      print('ID:　',self.患者ID)
      print('氏名:　',self.患者氏名)
      print('生年月日:　',self.患者生年月日, '(', self.年齢(), '歳)')
    # 変更点２
    elif (ページ-2 < len(self.診療データリスト)):
      print(self.診療データリスト[ページ-2].データのまとめ())
    else:
      print('まだ', ページ, '頁目はありません')

###############################################################

###############　診療データ【オブジェクト】の作成　##################
class 診療データ:
  # 初期状態の設定
  def __init__(self):
    # 変数の設定
    self.診療名 = ''
    self.診療日 = datetime.date.today()
    self.診療項目 = []
    self.診療結果 = {}
    self.医師の所見 = ''
  
  # 診療情報を記入する関数
  def 診療情報の記入(self, 内容):
    self.診療名 = 内容['名称']
    self.診療項目 = 内容['項目']

  # 診療結果を記入する関数
  def 診療結果の記入(self, 項目, 結果):
    self.診療結果[項目] = 結果

  # 所見を記入する関数
  def 所見の記入(self, 所見):
    self.医師の所見 = 所見

  # 要約する関数
  def データのまとめ(self):
    データ = '－－－－－－－－－－－－－－－－－－－－－\n'
    データ += '診療：'+self.診療名+'　　診療日：'+self.診療日.strftime('%Y年%m月%d日')+'\n'
    データ += '－－－－－－－－－－－－－－－－－－－－－\n'
    データ += '　診療項目　 結果\n'
    for 項目名 in self.診療項目:
      データ += '　　'+項目名+'　　'+self.診療結果[項目名]+'\n'
    データ += '所見：'+self.医師の所見+'\n'
    return データ

###################################################################

# カルテを運用する

# カルテの作成
私のカルテ = 簡易カルテ() 

#@markdown ###私のカルテ
学籍番号 =  12345#@param
名前 = '女子医花子' #@param {type:"string"}
生年月日 = '1900-01-01' #@param {type:"date"}
私のカルテ.記入(学籍番号, 名前, 生年月日)

# データの追加１
健康診断データ = 診療データ()
健康診断データ.診療情報の記入({ '名称': '健康診断', '項目': [ '身長', '体重', '視力', '血圧' ] })

#@markdown ###健康診断データ
身長 = '165 cm' #@param
体重 = '60.0 kg' #@param
視力 = '1.0/1.0' #@param
血圧 = '120/70' #@param

健康診断データ.診療結果の記入('身長', 身長)
健康診断データ.診療結果の記入('体重', 体重)
健康診断データ.診療結果の記入('視力', 視力)
健康診断データ.診療結果の記入('血圧', 血圧)
健康診断データ.所見の記入('異常なし')

私のカルテ.データ追加(健康診断データ)


# データの追加２
新型コロナ検査 = 診療データ()
新型コロナ検査.診療情報の記入({ '名称': '新型コロナ検査', '項目': [ '体温', 'せき', '味覚', 'PCR ' ] })

#@markdown ###新型コロナ検査
体温 = '36.5 ℃' #@param
せき = 'なし' #@param
味覚 = '正常' #@param
PCR = '陰性' #@param

新型コロナ検査.診療結果の記入('体温', 体温)
新型コロナ検査.診療結果の記入('せき', せき)
新型コロナ検査.診療結果の記入('味覚', 味覚)
新型コロナ検査.診療結果の記入('PCR ', PCR)
新型コロナ検査.所見の記入('非感染者')

私のカルテ.データ追加(新型コロナ検査)

私のカルテ.表示(1)
私のカルテ.表示(2)
私のカルテ.表示(3)
私のカルテ.表示(4)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.25095541401273885, 'fraction_numerical': 0.017197452229299363, 'mean_word_length': 3.962085308056872, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '295223', 'license': 'MIT', 'n_tokens_mistral': 2489, 'n_tokens_neox': 2458, 'n_words': 232, 'path': 'TWMU_2020_S1_Lecture_01_report.ipynb', 'repo_name': '11200030/Lecture', 'size': '3140'}