{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "remoteSourcesURL https://git0.fmf.uni-lj.si/studen/nixSuite/raw/master/remoteResources/resources.json\n",
      "{'labkeyInterface': {'url': 'https://git0.fmf.uni-lj.si/studen/labkeyInterface/archive/master.zip', 'branch': 'master', 'modules': []}, 'irAEMM': {'url': 'https://git0.fmf.uni-lj.si/studen/iraemm/archive/master.zip', 'branch': 'master', 'modules': ['iraemmBrowser']}, 'SlicerLabkeyExtension': {'url': 'https://git0.fmf.uni-lj.si/studen/SlicerLabkeyExtension/archive/SlicerExtensionIndex.zip', 'branch': 'SlicerExtensionIndex', 'modules': ['labkeyBrowser']}, 'limfomiPET': {'url': 'https://git0.fmf.uni-lj.si/studen/limfomiPET/archive/master.zip', 'branch': 'master', 'modules': ['imageBrowser']}, 'parseConfig': {'url': 'https://git0.fmf.uni-lj.si/studen/parseConfig/archive/master.zip', 'branch': 'master', 'modules': []}, 'orthancInterface': {'url': 'https://git0.fmf.uni-lj.si/studen/orthancInterface/archive/master.zip', 'branch': 'master', 'modules': []}}\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "import os\n",
    "import SimpleITK\n",
    "import numpy\n",
    "import matplotlib.pyplot\n",
    "import subprocess\n",
    "import json\n",
    "import config\n",
    "import getData\n",
    "\n",
    "sys.path.append(os.path.join(os.path.expanduser('~'),'software','src','nixSuite','wrapper'))\n",
    "import nixWrapper\n",
    "nixWrapper.loadLibrary('labkeyInterface')\n",
    "import labkeyInterface\n",
    "import labkeyFileBrowser\n",
    "import labkeyDatabaseBrowser\n",
    "\n",
    "#manipulate segmentations\n",
    "#rewrite this\n",
    "#nim=getPatientNIM(pId)\n",
    "\n",
    "def guessPixelPosition(sx=-1,sy=-1,sz=-1):\n",
    "    #guess position of segments\n",
    "    if sx<0:\n",
    "        sx=12\n",
    "    if sy<0:\n",
    "        sy=28\n",
    "    if sz<0:\n",
    "        sz=32\n",
    "    rz=4\n",
    "    oz=0\n",
    "\n",
    "    slc=[sx,sy,sz]\n",
    "    p1=[sx,sy,sz]\n",
    "\n",
    "    #tip\n",
    "    fp={'0':[\\\n",
    "            [sx,sy,sz],   \n",
    "            [sx-5,sy,sz],\\\n",
    "            [sx-2,sy,sz-rz],\\\n",
    "            [sx+3,sy,sz-rz],\\\n",
    "            [sx-2,sy,sz+rz-1],\\\n",
    "            [sx+3,sy,sz+rz]],\\\n",
    "        '1':[\\\n",
    "            [sx,sy,sz],  \n",
    "            [sx-5,sy,sz],\\\n",
    "            [sx-1,sy-rz,sz],\\\n",
    "            [sx-1,sy+rz-1,sz],\\\n",
    "            [sx+3,sy-rz,sz],\\\n",
    "            [sx+3,sy+rz,sz]],\\\n",
    "        '2':[\\\n",
    "            [sx,sy,sz],\n",
    "            [sx,sy+rz+oz,sz],\\\n",
    "            [sx,sy+0.3*rz+oz,sz-rz],\\\n",
    "            [sx,sy-0.3*rz+oz,sz-rz],\\\n",
    "            [sx,sy-rz+oz,sz],\\\n",
    "            [sx,sy-0.3*rz+oz,sz+rz],\\\n",
    "            [sx,sy+0.3*rz+oz,sz+rz]]}\n",
    "    return fp\n",
    "\n",
    "    \n",
    "def getPatientNIM(r,setup):\n",
    "    locDir=config.getLocalDir(r,setup)\n",
    "    fileName=config.getNodeName(r,setup,'NM',19)+'.nrrd'\n",
    "    f=os.path.join(locDir,fileName)\n",
    "    im=SimpleITK.ReadImage(f)\n",
    "    nim=SimpleITK.GetArrayFromImage(im)\n",
    "    return nim\n",
    "\n",
    "def writeSegmentation(db,r,setup):\n",
    "    locDir=config.getLocalDir(r,setup)\n",
    "    fileName='{}_Segmentation.txt'.format(config.getCode(r,setup))\n",
    "    idFilter={'variable':'PatientId','value':config.getPatientId(r,setup),'oper':'eq'}\n",
    "    visitFilter={'variable':'visitName','value':config.getVisitId(r,setup),'oper':'eq'}\n",
    "    rows=getData.getSegmentation(db,setup,[idFilter,visitFilter])\n",
    "    v=numpy.zeros((len(rows),3))\n",
    "    for qr in rows:\n",
    "        region=int(qr['regionId'])\n",
    "        v[region,2]=float(qr['x'])\n",
    "        v[region,1]=float(qr['y'])\n",
    "        v[region,0]=float(qr['z'])\n",
    "    #for i in range(len(rows)):\n",
    "    #    print(v[i,:])\n",
    "    numpy.savetxt(os.path.join(locDir,fileName),v)\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [],
   "source": [
    "#\n",
    "\n",
    "fsetup='../template/cardiacSPECT.json'\n",
    "with open(fsetup,'r') as f:\n",
    "    setup=json.load(f)\n",
    "    \n",
    "net=labkeyInterface.labkeyInterface()\n",
    "fconfig=os.path.join(os.path.expanduser('~'),'.labkey',setup['network'])\n",
    "net.init(fconfig)\n",
    "#net.getCSRF()\n",
    "db=labkeyDatabaseBrowser.labkeyDB(net)\n",
    "fb=labkeyFileBrowser.labkeyFileBrowser(net)\n",
    "#rewrite this\n",
    "#nim=getPatientNIM(pId)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'lsid': 'urn:lsid:ijs.si:Study.Data-113:5006.pred15052022.1.0000', 'visitName': 'MIR', '_labkeyurl_nmMasterOrthancId': 'https://orthanc.fmf.uni-lj.si/series/45dd38f1-b8fa7828-ed8032e8-e57f47c5-ce2cf639/archive', '_labkeyurl_PatientId': '/labkey/dinamic_spect/Patients/study-participant.view?participantId=pred15052022', 'PatientId': 'pred15052022', 'ctOrthancId': '82d2d679-137725b2-b6e1de3e-7733029d-ca0e0f23', 'nmCorrDataOrthancId': 'c54ac097-d2288737-89b2a716-6a8e8859-f40a2fc0', '_labkeyurl_nmCorrDataOrthancId': 'https://orthanc.fmf.uni-lj.si/series/c54ac097-d2288737-89b2a716-6a8e8859-f40a2fc0/archive', '_labkeyurl_ctOrthancId': 'https://orthanc.fmf.uni-lj.si/series/82d2d679-137725b2-b6e1de3e-7733029d-ca0e0f23/archive', 'nmMasterOrthancId': '45dd38f1-b8fa7828-ed8032e8-e57f47c5-ce2cf639', 'SequenceNum': 1.0}\n",
      "{'lsid': 'urn:lsid:ijs.si:Study.Data-113:5004.pred15052022.2.0000', 'visitName': 'MIR', 'sliceId': '0;1;2', '_labkeyurl_PatientId': '/labkey/dinamic_spect/Patients/study-participant.view?participantId=pred15052022', 'regionId': 0, 'aliasID': None, 'PatientId': 'pred15052022', 'x': '30', 'y': '32', 'z': '31', 'SequenceNum': 2.0}\n",
      "{'lsid': 'urn:lsid:ijs.si:Study.Data-113:5004.pred15052022.2.0100', 'visitName': 'MIR', 'sliceId': '0;2', '_labkeyurl_PatientId': '/labkey/dinamic_spect/Patients/study-participant.view?participantId=pred15052022', 'regionId': 1, 'aliasID': None, 'PatientId': 'pred15052022', 'x': '27', 'y': '32', 'z': '27', 'SequenceNum': 2.01}\n",
      "{'lsid': 'urn:lsid:ijs.si:Study.Data-113:5004.pred15052022.2.0200', 'visitName': 'MIR', 'sliceId': '0;2', '_labkeyurl_PatientId': '/labkey/dinamic_spect/Patients/study-participant.view?participantId=pred15052022', 'regionId': 2, 'aliasID': None, 'PatientId': 'pred15052022', 'x': '27', 'y': '32', 'z': '35', 'SequenceNum': 2.02}\n",
      "{'lsid': 'urn:lsid:ijs.si:Study.Data-113:5004.pred15052022.2.0300', 'visitName': 'MIR', 'sliceId': '1;2', '_labkeyurl_PatientId': '/labkey/dinamic_spect/Patients/study-participant.view?participantId=pred15052022', 'regionId': 3, 'aliasID': None, 'PatientId': 'pred15052022', 'x': '30', 'y': '29', 'z': '31', 'SequenceNum': 2.03}\n",
      "{'lsid': 'urn:lsid:ijs.si:Study.Data-113:5004.pred15052022.2.0400', 'visitName': 'MIR', 'sliceId': '1;2', '_labkeyurl_PatientId': '/labkey/dinamic_spect/Patients/study-participant.view?participantId=pred15052022', 'regionId': 4, 'aliasID': None, 'PatientId': 'pred15052022', 'x': '30', 'y': '35', 'z': '31', 'SequenceNum': 2.04}\n",
      "Center ([30, 32, 31])\n"
     ]
    },
    {
     "data": {
      "image/png": "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pH4tSUr/WljqPaDk+407puhrRdHXgE5gIGM+6supP6vlXKfdOXHzbzQvurHk9t99PV/y53/TptYps+M4emjmfgZYuXJlqy06puZfvMw05rs8+PmepCdUVXWhHu0kL5GUFBpwsrr99tv1rne9S7fddpt27dqlO+64Y9r/f8lLXqLvf//7xyeidevW6V/+5V+O///Pfvaz+uu//mvt2rVLl1xyid71rnfp9NNPlyS99KUv1Q9+8IPjHe6MM87Q5z73OUnSN7/5TX3kIx/R3XffrUWLFuniiy/Wa17zmuMT1uHDh/X+979f3/jGN7RkyRK96EUvOp7F85//+Z/asGGD7rjjDo2NjekXfuEX9PrXv15r1qyRJN1444360pe+pK1bt2rFihV64QtfqJe97GVdT1Xvao8k1L1M1L1c1L5M1L1M1L1c1L5M1L0ws/6qV13X45L+UNKXJf1/kj5Z1/Vtg9qx2ei6UsbChQv1nOc8R3/5l38ZvubP//zPddttt+m2226b9tDn9ttv19vf/nb9zd/8jb797W9ryZIluuaaa6Zt+7a3vU3f+c539J3vfOf4Qx/p0QCp3/md39HnPvc53XjjjdqxY4euv/764///Ix/5iB588EHdcMMNeve7361PfepTx4Oc9u/fr1/7tV/TRz/6UX3sYx/TKaecone9613Ht63rWm9/+9v15S9/We973/v06U9/WjfffHOn83Qy1h7DR93LRN3LRe3LRN3LRN3LRe3LRN3L0+U3flTX9U2SbhrQvoSe/OQn63d/93f18Y9/XFu3btVznvMcXXvttdq4caN+//d/X1dddZX+/u//Xr/8y7+sD3zgA/rABz6gG2+8UXv37tXTn/50vfvd7z7+K1Of/vSnde211+rAgQP6vd/7vWmf89jHPlaPfexjde+9JwpBb/vsZz+rX/3VX9XTnvY0jY+P63Wve50uv/xy7d+/P0xwP+ZZz3rW8f9esmSJLr/8cn34wx8+3vaVr3xFb3jDG7R8+XItX75cl112mW6++WatX79eF1988bT3esELXqA3vOENx//80pe+VNKjD7XOP/98PeMZz9Ctt96qSy+9NPsYpxpV7XFyoe5lou7lovZlou5lou7lovZlou5lGXq486B88pOf1Kc+9Sndcsstuuuuu/Te975XkrRt2zbt3r1bt9xyi6699lp98IMf1Je//GV9+tOf1n/8x39oxYoV+pM/+RNJ//VbOe9///v1ve99T7t27dKWLVuy9uM973mPLrroIr3oRS+atlzx7bffrp/7uZ87/ufzzz9fj3nMY3TPPfccb7vuuuv0y7/8y7ryyiv1ve99L/yMH/7wh7rgggskPfodw507d+qxj33s8f9/4YUX6r777rPb3nrrrbrwwgvt/6vrWj/4wQ/C/w8AAAAAAPpl3jz4efWrX61zzjlHK1eu1Bve8Ab98z//s6RHw5/e9KY3afHixTrllFP04Q9/WG95y1t09tlna/Hixbr66qv1hS98QePj47rpppuO/1bO4sWL9cY3vjEr+PAtb3mL/u3f/k3f/va3dcUVV+iVr3zl8d8Oevjhh7V8+fJpr1++fLkOHDggSXrTm96kL3zhC7r55pv1G7/xG/qjP/oj3X///a3P+O53v6ubb75ZV155paT/CnyaGly1dOlSPfzww61t7777bn30ox/VH/zBH9j9/+AHP6i6rvXc5z43+ZgBAAAAAMD81emrXrnqum6leaeswFXXtc4888zj6eBnnnmmtmzZovHxca1atUpjY2PHU9Lvv/9+XXXVVdMSwsfGxrRp0yZt3rxZ69atO/7ahQsXasWKFRofH5+Wsn7sYUvz4coTn/jE4/t8+eWX6zOf+YxuvvlmvfzlL9eSJUu0e/duHTp06Pgx7du3T4sWLdLhw4f1pCc96fj+P+95z9MXv/hFff3rXz8e0iw9+ps+11xzjf7iL/5Cj3/84yX9V6r3+Pj48QdLR44c0dKlS6clm2/atElve9vb9NrXvlY///M/3zqv//RP/6SbbrpJ1113neq6Pp4MnrriUlezqfsxLgHftbn0+Og93eoSbkUXya+AlbNCj3vf1FW5ovT/qL0pOs9dV55LVdd167O6rs6RuvKb5I8zZ5Uet9pXzqpeqavK5Kz0kiravjlOuqy0EqnrOvlzXHvqik9RX3Lv6cZcNOZTV4eKVopJ/fzUFWEkv5qD68vR2G5+1jDq7j4/p0auLWeucp/lzlFU99QaRefOvW/qqkHH/pKoya0MkjMWRil1FSnXx1NXdIuOM/WaGP1lX+p1Idre1dmtKJRz/XIrvaSubiu172GjFWG6atYuZ4Wf1OtcNOZS3zOaq91YzLlnS62n+8taV18pfXy4uUFqr/CTOjZy1HXdqknOfb07RlfjqH+4cZhzz+Tu7VLvyyU/llyNXY2i1aJc+whW9crm7utz5vrUOkX35amrMkcr8bnXujESzRnuta527htF0bd13Gpf5557bqstmsN37tw57c/DWtVrpKYulbZp0yatW7dOUrswZ599tv7qr/5K69evb73H2rVrdddddx3/8yOPPNJa9jBHVVXHO+DjH/94/fjHPz7+/+6//34dPnz4+Fe2ZtpWkn7yk5/oTW96k/70T/902r4vX75cq1ev1l133XW8/a677pr2vlu2bNEb3/hGvfzlL5+WF3TMTTfdpBtvvFHXXXedzjjjjFkfLwAAAAAAmF/mzVe9PvjBD+rBBx/Url279Ld/+7d6/vOfb1/3spe9TNdee60eeOABSdKOHTv0la98RZJ02WWX6V//9V+1cePG40ukT334cuw3YY49oTx06NDxJ3t79+7VN77xDR06dEjj4+P6/Oc/r1tuuUXPeMYzJD36WzzH3vvhhx/W3/3d3+nSSy/V0qVLW9t+4Qtf0C233KJLLrlE0qMPcv74j/9YV1999fH3m+qyyy7TRz/6Ue3bt0/33XefvvCFL+jZz362pEef7F999dV6wQteoF//9V9vbXvzzTfrH/7hH/Te975XZ5999qzOPQAAAAAAmJ/mzW/8vOhFL9KLX/xibd26Vc9+9rP1ute9Tt///vdbr7vqqqs0MTGh3/7t39a2bdu0evVqPfe5z9WznvUs/ezP/qyuueYavf71r9cjjzyiV7ziFcd/c0iSHnzwwWm/MXPxxRfr7LPP1he/+EWNj4/ruuuu009/+lMtWLBAF154oa677rrjQclPeMITdM011+hNb3qTdu/erV/8xV/U//gf/0OSpm07NjamCy+8UO973/t0/vnn69ChQ/rYxz6m3bt3653vfKfe+c53SpLWrVunj3zkI5KkV7ziFXrPe96jK664QosXL9ZLXvKS46t53XTTTdq8ebNuuOEG3XDDDcf3/Utf+pIk6R//8R+1d+9evfrVrz7+/y699FJdffXVA6kLAAAAAAA4ec2bBz8XXXSRXvva105ru+SSS1qrY42NjemVr3ylXvnKV9r3eeELXzgtV+eqq646/t/nnHOObrvtNvvduFWrVumTn/zkjPv4vOc9T8973vNa3308tm2U3fCOd7xD73jHO47/ufn9wUWLFunNb36z3vzmN7e2vfLKK48H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\n",
      "text/plain": [
       "<Figure size 1440x864 with 27 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pId='po1982022'\n",
    "cx={}\n",
    "cx[pId]=[32,31,31]\n",
    "pId='pred15052022'\n",
    "cx[pId]=[30,32,31]\n",
    "#order\n",
    "#[green,blue,red]\n",
    "\n",
    "fp={'0':[],'1':[],'2':[]}\n",
    "\n",
    "visitId='MIR'\n",
    "idFilter={'variable':'PatientId','value':pId,'oper':'eq'}\n",
    "visitFilter={'variable':'visitName','value':visitId,'oper':'eq'}\n",
    "\n",
    "rows=getData.getPatients(db,setup,[idFilter,visitFilter])\n",
    "for r in rows:\n",
    "    print(r)\n",
    "\n",
    "r=rows[0]\n",
    "nim=getPatientNIM(r,setup)\n",
    "#i labels segments\n",
    "#ns=16\n",
    "#for i in numpy.arange(ns):\n",
    "#    sNum=r['SequenceNum']+0.0100*i\n",
    "#seqFilter={'variable':'SequenceNum','value':'{:.2f}'.format(sNum),'oper':'eq'}\n",
    "rows=getData.getSegmentation(db,setup,[idFilter,visitFilter])\n",
    "    \n",
    "if len(rows)==0:\n",
    "    print('Not found for s={}'.format(sNum))\n",
    "    fp=guessPixelPosition(*cx[pId])\n",
    "else:\n",
    "    for q in rows:\n",
    "        print(q)\n",
    "        slices=q['sliceId'].split(';')\n",
    "        for s in slices:\n",
    "            fp[s].append([float(x) for x in [q['x'],q['y'],q['z']]])\n",
    "        #first point is (sx,sy,sz)\n",
    "\n",
    "oz=0\n",
    "rz=4\n",
    "#update last 6 points \n",
    "sx=fp['0'][0][0]\n",
    "sy=fp['0'][0][1]\n",
    "sz=fp['0'][0][2]\n",
    "slc=[int(x) for x in fp['0'][0]]\n",
    "print('Center ({})'.format(slc))\n",
    "\n",
    "cut0=20\n",
    "w0=20\n",
    "cut1=20\n",
    "w1=20\n",
    "cut2=20\n",
    "w2=20\n",
    "vmax=1000\n",
    "vmin=0\n",
    "fig,ax=matplotlib.pyplot.subplots(3,9,figsize=(20,12))\n",
    "for i in numpy.arange(0,9):\n",
    "    ax[0,i].imshow(nim[cut2:cut2+w2,slc[1]-4+i,cut0:cut0+w0],cmap='gray_r',vmax=vmax,vmin=vmin)\n",
    "    ax[1,i].imshow(nim[cut2:cut2+w2,cut0:cut0+w0,slc[2]-4+i].T,cmap='gray_r',vmax=vmax,vmin=vmin)\n",
    "    ax[2,i].imshow(nim[slc[0]-4+i,cut1:cut1+w1,cut1:cut1+w1],cmap='gray_r',vmax=vmax,vmin=vmin)\n",
    "    if i==4:\n",
    "        pt=fp['0']\n",
    "        ax[0,i].scatter([x[2]-cut0 for x in pt],[x[0]-cut2 for x in pt])\n",
    "        pt=fp['1']\n",
    "        ax[1,i].scatter([x[0]-cut2 for x in pt],[x[1]-cut0 for x in pt])\n",
    "        pt=fp['2']\n",
    "        ax[2,i].scatter([x[2]-cut1 for x in pt],[x[1]-cut1 for x in pt])\n",
    "        \n",
    "    if i==0:\n",
    "        ax[0,i].text(2,2,pId,fontsize='large')\n",
    "          \n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "******10KF_MIR******\n",
      "[33. 33. 15.]\n",
      "[33. 33. 11.]\n",
      "[29. 33. 13.]\n",
      "[37. 33. 14.]\n",
      "[29. 33. 17.]\n",
      "[38. 33. 19.]\n",
      "[33. 29. 14.]\n",
      "[33. 38. 14.]\n",
      "[33. 28. 19.]\n",
      "[33. 39. 19.]\n",
      "[33. 37. 15.]\n",
      "[29.  34.2 15. ]\n",
      "[29.  31.8 15. ]\n",
      "[33. 29. 15.]\n",
      "[37.  31.8 15. ]\n",
      "[37.  34.2 15. ]\n",
      "******10KF_OBR******\n",
      "[32. 27. 13.]\n",
      "[32. 27.  8.]\n",
      "[28. 27. 10.]\n",
      "[37. 27. 11.]\n",
      "[28. 27. 14.]\n",
      "[37. 27. 16.]\n",
      "[32. 23. 11.]\n",
      "[32. 32. 11.]\n",
      "[32. 22. 16.]\n",
      "[32. 33. 16.]\n",
      "[32. 31. 13.]\n",
      "[28.  28.2 13. ]\n",
      "[28.  25.8 13. ]\n",
      "[32. 23. 13.]\n",
      "[36.  25.8 13. ]\n",
      "[36.  28.2 13. ]\n",
      "******po1982022_MIR******\n",
      "[31. 31. 32.]\n",
      "[27.5 31.  32. ]\n",
      "[35. 31. 32.]\n",
      "[31.  27.5 32. ]\n",
      "[31. 35. 32.]\n",
      "******pred15052022_MIR******\n",
      "[31. 32. 30.]\n",
      "[27. 32. 27.]\n",
      "[35. 32. 27.]\n",
      "[31. 29. 30.]\n",
      "[31. 35. 30.]\n"
     ]
    }
   ],
   "source": [
    "rows=getData.getPatients(db,setup)\n",
    "for r in rows:\n",
    "    print('******{}******'.format(config.getCode(r,setup)))\n",
    "    writeSegmentation(db,r,setup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}