OK是orthokeratology的缩写,也就是角膜塑形的意思。顾名思义,OK镜改变视力的原理与激光近视手术类似,都是通过改变角膜的形状完成的。但这两者的原理并不相同,激光手术是通过永久切削角膜来实现度数的改变,因而术后的好视力是持续的。但OK镜对角膜形态的改变是可逆的,因此好视力无法持续维持。
跟很多人想的不同,OK镜实际上并不主要通过直接压迫来完成角膜形态的改变,如图所示,OK镜的镜片在周边有一圈空隙,就好像一个做点心的模具,而我们的角膜上皮就像一个面团,在经过几小时的戴镜后,可重复生长的角膜上皮就完成了周边厚中央薄的塑形,这时候我们眼睛的度数就发生了改变。
度数比较低、角膜形态比较适合的戴镜者在戴镜后比较容易得到清晰的视力,而度数比较高或角膜形态不是特别理想的戴镜者则相对不容易得到清晰视力。大部分中低度数的戴镜者在持续戴镜后, 白天都可以得到比较满意的视力,但到了晚一些的时候,随着摘镜时间延长,角膜又逐渐回到了原来的形状,视力也就逐渐下降了。但白天的视力与近视控制的效果并没有什么相关性。

''标签解析异常!
内部连接致命错误。
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.SqlDataReader.TryCloseInternal(Boolean closeReader)
在 System.Data.SqlClient.SqlDataReader.Close()
在 System.Data.Common.DbDataReader.Dispose(Boolean disposing)
在 System.Data.Common.DbDataReader.Dispose()
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 Whir.Repository.Database.Query(String sql, Object[] args)
在 Whir.Label.Dynamic.Content.GetColumnFileValue()
在 Whir.Label.Dynamic.Content.Render(HtmlTextWriter output)
''标签解析异常!
Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
在 System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
在 System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
在 System.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Byte[] buff, Int32 offset, Int32 len, Int32& totalRead)
在 System.Data.SqlClient.TdsParserStateObject.TryReadString(Int32 length, String& value)
在 System.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly)
在 System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn)
在 System.Data.SqlClient.SqlDataReader.GetValues(Object[] values)
在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
在 System.Data.ProviderBase.SchemaMapping.LoadDataRow()
在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 Whir.Repository.Database.Query(String sql, Object[] args)
在 Whir.Label.Dynamic.Content.GetColumnFileValue()
在 Whir.Label.Dynamic.Content.Render(HtmlTextWriter output)